diff --git a/xembed-sni-proxy/fdoselectionmanager.cpp b/xembed-sni-proxy/fdoselectionmanager.cpp index 495b88014a01c1d909b4b8bf33c892db2f69b3c8..d8208d1a78421539ae1dbb91d14af1f34db78067 100644 --- a/xembed-sni-proxy/fdoselectionmanager.cpp +++ b/xembed-sni-proxy/fdoselectionmanager.cpp @@ -188,6 +188,7 @@ void FdoSelectionManager::onClaimedOwnership() { qCDebug(SNIPROXY) << "Manager selection claimed"; + Q_EMIT ready(); setSystemTrayVisual(); } diff --git a/xembed-sni-proxy/fdoselectionmanager.h b/xembed-sni-proxy/fdoselectionmanager.h index 16695e2d35b5907535b8b373c20a075e1e33fdc1..69e3e693e87da64b941e4dba691e56d0488e1478 100644 --- a/xembed-sni-proxy/fdoselectionmanager.h +++ b/xembed-sni-proxy/fdoselectionmanager.h @@ -24,6 +24,9 @@ public: FdoSelectionManager(); ~FdoSelectionManager() override; +Q_SIGNALS: + void ready(); + protected: bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override; diff --git a/xembed-sni-proxy/main.cpp b/xembed-sni-proxy/main.cpp index a95ec36a7ec5a1a981e5959b5437b5e99babd0c0..ff5a97528f132a1d6f943920d799004c52d0bb9c 100644 --- a/xembed-sni-proxy/main.cpp +++ b/xembed-sni-proxy/main.cpp @@ -6,6 +6,7 @@ */ #include +#include #include #include "fdoselectionmanager.h" @@ -52,6 +53,9 @@ int main(int argc, char **argv) Xcb::atoms = new Xcb::Atoms(); FdoSelectionManager manager; + QObject::connect(&manager, &FdoSelectionManager::ready, []() { + QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.xembedsniproxy")); + }); auto rc = app.exec(); diff --git a/xembed-sni-proxy/plasma-xembedsniproxy.service.in b/xembed-sni-proxy/plasma-xembedsniproxy.service.in index 61090fd0067eb45bf5b35dd01b28b6454ed51159..ee3e65bb9a66a9291790b47949e0263f11f7a2a9 100644 --- a/xembed-sni-proxy/plasma-xembedsniproxy.service.in +++ b/xembed-sni-proxy/plasma-xembedsniproxy.service.in @@ -6,6 +6,7 @@ After=plasma-core.target [Service] ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/xembedsniproxy Restart=on-failure -Type=simple +Type=dbus +BusName=org.kde.xembedsniproxy Slice=background.slice TimeoutSec=5sec