Paste P656

Masterwork From Distant Lands
ActivePublic

Authored by davidedmundson on Jan 4 2021, 2:38 PM.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6dedb48..4eb54c0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,9 @@ find_package(Qt5DBus ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
find_package(Qt5X11Extras ${REQUIRED_QT_VERSION} NO_MODULE)
+find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
+
+
include(GenerateExportHeader)
include(CMakePackageConfigHelpers)
include(ECMSetupVersion)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c1683c9..dbb0dba 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -48,7 +48,7 @@ ecm_generate_export_header(KF5DBusAddons
add_library(KF5::DBusAddons ALIAS KF5DBusAddons)
-target_link_libraries(KF5DBusAddons PUBLIC Qt5::DBus PRIVATE ${qtx11extras})
+target_link_libraries(KF5DBusAddons PUBLIC Qt5::DBus PRIVATE ${qtx11extras} KF5::WindowSystem)
target_include_directories(KF5DBusAddons INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF5}/KDBusAddons>")
diff --git a/src/kdbusservice.cpp b/src/kdbusservice.cpp
index b853523..7cd2b2f 100644
--- a/src/kdbusservice.cpp
+++ b/src/kdbusservice.cpp
@@ -26,6 +26,8 @@
#include <QX11Info>
#endif
+#include <KStartupInfo>
+
#include "kdbusservice_adaptor.h"
#include "kdbusserviceextensions_adaptor.h"
@@ -176,6 +178,7 @@ public:
});
}
+
d->registered =
(bus->registerService(d->serviceName, queueOption) == QDBusConnectionInterface::ServiceRegistered);
@@ -193,7 +196,8 @@ public:
} else if (options & KDBusService::Unique) {
// Already running so it's ok!
QVariantMap platform_data;
- platform_data.insert(QStringLiteral("desktop-startup-id"), QString::fromUtf8(qgetenv("DESKTOP_STARTUP_ID")));
+ platform_data.insert(QStringLiteral("desktop-startup-id"), QString::fromLatin1(QX11Info::nextStartupId()));
+
if (QCoreApplication::arguments().count() > 1) {
OrgKdeKDBusServiceInterface iface(d->serviceName, objectPath, QDBusConnection::sessionBus());
iface.setTimeout(5 * 60 * 1000); // Application can take time to answer
@@ -291,15 +295,22 @@ void KDBusService::unregister()
void KDBusService::Activate(const QVariantMap &platform_data)
{
- Q_UNUSED(platform_data);
+// Q_UNUSED(platform_data);
#if HAVE_X11
if (QX11Info::isPlatformX11()) {
- QX11Info::setAppTime(QX11Info::getTimestamp());
+ // noooo
+// QX11Info::setAppTime(QX11Info::getTimestamp());
}
#endif
- // TODO QX11Info::setNextStartupId(platform_data.value("desktop-startup-id"))
+
+ QByteArray desktopStartupId = platform_data.value(QStringLiteral("desktop-startup-id")).toByteArray();
+ KStartupInfo::setStartupId(desktopStartupId);
+
+ qDebug() << desktopStartupId;
+// QX11Info::setNextStartupId(desktopStartupId);
emit activateRequested(QStringList(), QString());
- // TODO (via hook) KStartupInfo::appStarted(platform_data.value("desktop-startup-id"))
+ // TODO (via hook)
+ KStartupInfo::appStarted(desktopStartupId);
// ^^ same discussion as below
}
davidedmundson edited the content of this paste. (Show Details)Jan 4 2021, 2:38 PM
davidedmundson changed the title of this paste from untitled to Masterwork From Distant Lands.