[kcmkwin/options] Load/Unload WindowGeometry effect
Depending on the state of the show window geometry we need to load or unload the effect. BUG: 343272 FIXED-IN: 5.2.1 REVIEW: 122258
This commit is contained in:
parent
658ff303fe
commit
62d71bc247
2 changed files with 17 additions and 3 deletions
|
@ -2,10 +2,12 @@
|
|||
# KI18N Translation Domain for this library
|
||||
add_definitions(-DTRANSLATION_DOMAIN=\"kcmkwm\")
|
||||
|
||||
set(kcm_kwinoptions_PART_SRCS windows.cpp mouse.cpp main.cpp )
|
||||
set(kcm_kwinoptions_PART_SRCS windows.cpp mouse.cpp main.cpp ${KWIN_SOURCE_DIR}/effects/effect_builtins.cpp )
|
||||
ki18n_wrap_ui(kcm_kwinoptions_PART_SRCS actions.ui advanced.ui focus.ui mouse.ui moving.ui)
|
||||
qt5_add_dbus_interface( kcm_kwinoptions_PART_SRCS
|
||||
${KWIN_SOURCE_DIR}/org.kde.kwin.Effects.xml kwin_effects_interface)
|
||||
add_library(kcm_kwinoptions MODULE ${kcm_kwinoptions_PART_SRCS})
|
||||
target_link_libraries(kcm_kwinoptions Qt5::DBus KF5::Completion KF5::I18n KF5::ConfigWidgets KF5::Service)
|
||||
target_link_libraries(kcm_kwinoptions Qt5::DBus KF5::Completion KF5::I18n KF5::ConfigWidgets KF5::Service KF5::WindowSystem)
|
||||
install(TARGETS kcm_kwinoptions DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
|
||||
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
#include <X11/Xutil.h>
|
||||
|
||||
#include "windows.h"
|
||||
#include <effect_builtins.h>
|
||||
#include <kwin_effects_interface.h>
|
||||
|
||||
// kwin config keywords
|
||||
#define KWIN_FOCUS "FocusPolicy"
|
||||
|
@ -585,7 +587,8 @@ void KMovingConfig::save(void)
|
|||
cg.writeEntry(KWM_CNTR_SNAP_ZONE, getCenterSnapZone());
|
||||
cg.writeEntry("SnapOnlyWhenOverlapping", m_ui->OverlapSnap->isChecked());
|
||||
|
||||
KConfigGroup(config, "Plugins").writeEntry("windowgeometryEnabled", getGeometryTip());
|
||||
const bool geometryTip = getGeometryTip();
|
||||
KConfigGroup(config, "Plugins").writeEntry("windowgeometryEnabled", geometryTip);
|
||||
|
||||
if (standAlone) {
|
||||
config->sync();
|
||||
|
@ -594,6 +597,15 @@ void KMovingConfig::save(void)
|
|||
QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
|
||||
QDBusConnection::sessionBus().send(message);
|
||||
}
|
||||
// and reconfigure the effect
|
||||
OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
|
||||
QStringLiteral("/Effects"),
|
||||
QDBusConnection::sessionBus());
|
||||
if (geometryTip) {
|
||||
interface.loadEffect(KWin::BuiltInEffects::nameForEffect(KWin::BuiltInEffect::WindowGeometry));
|
||||
} else {
|
||||
interface.unloadEffect(KWin::BuiltInEffects::nameForEffect(KWin::BuiltInEffect::WindowGeometry));
|
||||
}
|
||||
emit KCModule::changed(false);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue