diff --git a/kcms/touchpad/src/kded/kded.h b/kcms/touchpad/src/kded/kded.h --- a/kcms/touchpad/src/kded/kded.h +++ b/kcms/touchpad/src/kded/kded.h @@ -64,6 +64,7 @@ void showNotification(const QString &name, const QString &text); void lateInit(); void updateWorkingTouchpadFound(); + void showOsd(); TouchpadBackend *m_backend; TouchpadDisablerSettings m_settings; diff --git a/kcms/touchpad/src/kded/kded.cpp b/kcms/touchpad/src/kded/kded.cpp --- a/kcms/touchpad/src/kded/kded.cpp +++ b/kcms/touchpad/src/kded/kded.cpp @@ -19,6 +19,8 @@ #include "kded.h" #include +#include +#include #include #include @@ -232,9 +234,18 @@ void TouchpadDisabler::lateInit() { TouchpadGlobalActions *actions = new TouchpadGlobalActions(false, this); - connect(actions, SIGNAL(enableTriggered()), SLOT(enable())); - connect(actions, SIGNAL(disableTriggered()), SLOT(disable())); - connect(actions, SIGNAL(toggleTriggered()), SLOT(toggle())); + connect(actions, &TouchpadGlobalActions::enableTriggered, this, [this] { + enable(); + showOsd(); + }); + connect(actions, &TouchpadGlobalActions::disableTriggered, this, [this] { + disable(); + showOsd(); + }); + connect(actions, &TouchpadGlobalActions::toggleTriggered, this, [this] { + toggle(); + showOsd(); + }); updateCurrentState(); mousePlugged(); @@ -260,3 +271,17 @@ Q_EMIT workingTouchpadFoundChanged(m_workingTouchpadFound); } } + +void TouchpadDisabler::showOsd() +{ + QDBusMessage msg = QDBusMessage::createMethodCall( + QStringLiteral("org.kde.plasmashell"), + QStringLiteral("/org/kde/osdService"), + QStringLiteral("org.kde.osdService"), + QStringLiteral("touchpadEnabledChanged") + ); + + msg.setArguments({m_backend->isTouchpadEnabled()}); + + QDBusConnection::sessionBus().asyncCall(msg); +}