From 46b9841e4cad0251a87c15e31e0a648ad64f2285 Mon Sep 17 00:00:00 2001 From: chani Date: Sat, 25 Oct 2008 20:11:22 +0000 Subject: [PATCH] fix the "screensaver goes away and then plasma-overlay flickers past a few seconds later" bug I'm surprised at how little code this required in the end. :) git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase@875844 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- workspace/plasma/shells/screensaver/plasmaapp.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/workspace/plasma/shells/screensaver/plasmaapp.cpp b/workspace/plasma/shells/screensaver/plasmaapp.cpp index b6ccb4537a..f9b7348a18 100644 --- a/workspace/plasma/shells/screensaver/plasmaapp.cpp +++ b/workspace/plasma/shells/screensaver/plasmaapp.cpp @@ -380,11 +380,22 @@ void PlasmaApp::createView(Plasma::Containment *containment) if (KCmdLineArgs::parsedArgs()->isSet("setup")) { m_view->enableSetupMode(); activate(); - } else if (m_idleOpacity > 0) { - m_view->setWindowOpacity(m_idleOpacity); - m_view->showView(); + } else { + kDebug() << "checking lockprocess is still around"; + QDBusInterface lockprocess("org.kde.krunner_lock", "/LockProcess", + "org.kde.krunner_lock.LockProcess", QDBusConnection::sessionBus(), this); + if (lockprocess.isValid()) { + kDebug() << "success!"; + if (m_idleOpacity > 0) { + m_view->setWindowOpacity(m_idleOpacity); + m_view->showView(); + emit viewCreated(m_view->effectiveWinId()); //FIXME this won't work for invisible-idle and is Wrong anyways + } + } else { + kDebug() << "bailing out"; + qApp->quit(); + } } - emit viewCreated(m_view->effectiveWinId()); } bool PlasmaApp::eventFilter(QObject *obj, QEvent *event) -- 2.11.4.GIT