diff --git a/kcmkwin/kwinscreenedges/CMakeLists.txt b/kcmkwin/kwinscreenedges/CMakeLists.txt
index ca90632e9c..9921b66b24 100644
--- a/kcmkwin/kwinscreenedges/CMakeLists.txt
+++ b/kcmkwin/kwinscreenedges/CMakeLists.txt
@@ -9,6 +9,8 @@ set(
screenpreviewwidget.cpp
)
ki18n_wrap_ui( kcm_kwinscreenedges_PART_SRCS main.ui )
+qt5_add_dbus_interface( kcm_kwinscreenedges_PART_SRCS
+ ${KWIN_SOURCE_DIR}/org.kde.kwin.Effects.xml kwin_effects_interface)
add_library( kcm_kwinscreenedges MODULE ${kcm_kwinscreenedges_PART_SRCS} )
target_link_libraries( kcm_kwinscreenedges ${X11_LIBRARIES}
Qt5::DBus
diff --git a/kcmkwin/kwinscreenedges/main.cpp b/kcmkwin/kwinscreenedges/main.cpp
index 614cc0f5fd..54c8cd8153 100644
--- a/kcmkwin/kwinscreenedges/main.cpp
+++ b/kcmkwin/kwinscreenedges/main.cpp
@@ -21,6 +21,7 @@ along with this program. If not, see .
#include "main.h"
#include
+#include
#include
#include
@@ -123,6 +124,13 @@ void KWinScreenEdgesConfig::save()
// Reload KWin.
QDBusMessage message = QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
QDBusConnection::sessionBus().send(message);
+ // and reconfigure the effects
+ OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
+ QStringLiteral("/Effects"),
+ QDBusConnection::sessionBus());
+ interface.reconfigureEffect(BuiltInEffects::nameForEffect(BuiltInEffect::PresentWindows));
+ interface.reconfigureEffect(BuiltInEffects::nameForEffect(BuiltInEffect::DesktopGrid));
+ interface.reconfigureEffect(BuiltInEffects::nameForEffect(BuiltInEffect::Cube));
emit changed(false);
}