diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-04-27 02:32:58 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-06-03 03:27:15 +0200 |
commit | 9c17452032ed5e886f29c18c32898beb23c65d95 (patch) | |
tree | 122b6ee05487d94529ad68eef083c2396c73e50f /kdesktop/lock | |
parent | c65396ed7628fb0065c4ebe8061ba978cf1443fc (diff) | |
download | tdebase-9c17452032ed5e886f29c18c32898beb23c65d95.tar.gz tdebase-9c17452032ed5e886f29c18c32898beb23c65d95.zip |
Fix screen saver not engaging correctly
Fix graphical glitches in the lock process
(cherry picked from commit 601b75a1e4158dbf0c293e682d5db0078a41e736)
Diffstat (limited to 'kdesktop/lock')
-rw-r--r-- | kdesktop/lock/lockprocess.cc | 17 | ||||
-rw-r--r-- | kdesktop/lock/main.cc | 2 |
2 files changed, 13 insertions, 6 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc index 2e189dbfe..3fb068b6f 100644 --- a/kdesktop/lock/lockprocess.cc +++ b/kdesktop/lock/lockprocess.cc @@ -263,8 +263,6 @@ LockProcess::LockProcess() if ((*it).startsWith("method=")) mMethod = (*it).mid(7); - configure(); - #ifdef HAVE_DPMS if (mDPMSDepend) { BOOL on; @@ -354,6 +352,8 @@ void LockProcess::init(bool child, bool useBlankOnly) mHackDelayStartupTimeout = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::timeout()*1000:10*1000; mHackStartupEnabled = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::screenSaverEnabled():true; + + configure(); } static int signal_pipe[2]; @@ -689,6 +689,7 @@ void LockProcess::startSecureDialog() // the screensaver kicks in because the user moved the mouse after // selecting "lock screen", that looks really untidy. mBusy = true; + trinity_desktop_lock_forced = true; // Make sure the cursor is not showing busy status setCursor( tqarrowCursor ); if (startLock()) @@ -699,10 +700,18 @@ void LockProcess::startSecureDialog() else { TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed())); } + if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced && trinity_desktop_lock_use_system_modal_dialogs) { + ENABLE_CONTINUOUS_LOCKDLG_DISPLAY + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + } + else { + startHack(); + } return; } stopSaver(); mBusy = false; + return; } if (ret == 2) { trinity_desktop_lock_closing_windows = 1; @@ -1212,7 +1221,7 @@ bool LockProcess::startSaver() raise(); XSync(qt_xdisplay(), False); setVRoot( winId(), winId() ); - if (!(trinity_desktop_lock_delay_screensaver_start && (trinity_desktop_lock_forced || trinity_desktop_lock_in_sec_dlg))) { + if ((!(trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced)) && (!trinity_desktop_lock_in_sec_dlg)) { if (backingPixmap.isNull()) setBackgroundColor(black); else @@ -1224,8 +1233,6 @@ bool LockProcess::startSaver() // Try to get the root pixmap if (!m_rootPixmap) m_rootPixmap = new KRootPixmap(this); m_rootPixmap->setCustomPainting(true); - connect(m_rootPixmap, TQT_SIGNAL(backgroundUpdated(const TQPixmap &)), this, TQT_SLOT(slotPaintBackground(const TQPixmap &))); - m_rootPixmap->start(); // Sometimes KRootPixmap fails...make sure the desktop is hidden regardless if (!mEnsureScreenHiddenTimer) { mEnsureScreenHiddenTimer = new TQTimer( this ); diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc index b10162f98..ee7997cd5 100644 --- a/kdesktop/lock/main.cc +++ b/kdesktop/lock/main.cc @@ -269,7 +269,7 @@ int main( int argc, char **argv ) } // Reload settings to make sure they reflect reality - KDesktopSettings::self()->readConfig(); + KDesktopSettings::self()->config()->reparseConfiguration(); tdmconfig->reparseConfiguration(); trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows(); trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart(); |