diff --git a/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.h b/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.h --- a/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.h +++ b/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.h @@ -47,6 +47,8 @@ // return value between 0. and 1. double electricBorderCornerRatio() const; + void setElectricBorderCornerRatioEnabled(bool enable); + void reload() override; void setDefaults() override; diff --git a/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.cpp b/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.cpp --- a/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.cpp +++ b/kcmkwin/kwinscreenedges/kwinscreenedgeconfigform.cpp @@ -62,6 +62,11 @@ return ui->electricBorderCornerRatioSpin->value() / 100.; } +void KWinScreenEdgesConfigForm::setElectricBorderCornerRatioEnabled(bool enable) +{ + return ui->electricBorderCornerRatioSpin->setEnabled(enable); +} + void KWinScreenEdgesConfigForm::reload() { ui->electricBorderCornerRatioSpin->setValue(m_referenceCornerRatio * 100.); diff --git a/kcmkwin/kwinscreenedges/main.cpp b/kcmkwin/kwinscreenedges/main.cpp --- a/kcmkwin/kwinscreenedges/main.cpp +++ b/kcmkwin/kwinscreenedges/main.cpp @@ -315,6 +315,19 @@ bool reasonable = focusPolicy != "FocusStrictlyUnderMouse" && focusPolicy != "FocusUnderMouse"; m_form->monitorItemSetEnabled(TabBox, reasonable); m_form->monitorItemSetEnabled(TabBoxAlternative, reasonable); + + // Disable Edge if ElectricBorders group entries are immutable + m_form->monitorEnableEdge(ElectricTop, !m_settings->isTopImmutable()); + m_form->monitorEnableEdge(ElectricTopRight, !m_settings->isTopRightImmutable()); + m_form->monitorEnableEdge(ElectricRight, !m_settings->isRightImmutable()); + m_form->monitorEnableEdge(ElectricBottomRight, !m_settings->isBottomRightImmutable()); + m_form->monitorEnableEdge(ElectricBottom, !m_settings->isBottomImmutable()); + m_form->monitorEnableEdge(ElectricBottomLeft, !m_settings->isBottomLeftImmutable()); + m_form->monitorEnableEdge(ElectricLeft, !m_settings->isLeftImmutable()); + m_form->monitorEnableEdge(ElectricTopLeft, !m_settings->isTopLeftImmutable()); + + // Disable ElectricBorderCornerRatio if entry is immutable + m_form->setElectricBorderCornerRatioEnabled(!m_settings->isElectricBorderCornerRatioImmutable()); } ElectricBorderAction KWinScreenEdgesConfig::electricBorderActionFromString(const QString &string)