From 2dc5aebcc29cce4d363d5a67bb3538d797ba2299 Mon Sep 17 00:00:00 2001 From: Martin Klapetek Date: Mon, 4 Nov 2013 11:14:20 +0100 Subject: [PATCH] Inform KSplash via DBus about kwin startup KSplash for PW2 will use DBus for setting stages instead of xatoms, this ports kwin to send a DBus message to KSplash. REVIEW: 113524 --- main.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/main.cpp b/main.cpp index b89e923bb7..601e76ad42 100644 --- a/main.cpp +++ b/main.cpp @@ -253,16 +253,13 @@ void Application::start() Xcb::sync(); // Trigger possible errors, there's still a chance to abort - const QByteArray splashAtomName(QByteArrayLiteral("_KDE_SPLASH_PROGRESS")); - ScopedCPointer splashAtom(xcb_intern_atom_reply(connection(), - xcb_intern_atom_unchecked(connection(), false, splashAtomName.length(), splashAtomName.constData()), nullptr)); - xcb_client_message_event_t e; - e.response_type = XCB_CLIENT_MESSAGE; - e.format = 8; - e.window = rootWindow(); - e.type = splashAtom->atom; - strcpy((char*)e.data.data8, "wm"); - xcb_send_event(connection(), false, rootWindow(), XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY, (const char *)&e); + // Tell KSplash that KWin has started + QDBusMessage ksplashProgressMessage = QDBusMessage::createMethodCall(QStringLiteral("org.kde.KSplash"), + QStringLiteral("/KSplash"), + QStringLiteral("org.kde.KSplash"), + QStringLiteral("setStage")); + ksplashProgressMessage.setArguments(QList() << QStringLiteral("wm")); + QDBusConnection::sessionBus().asyncCall(ksplashProgressMessage); }); // we need to do an XSync here, otherwise the QPA might crash us later on Xcb::sync();