summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-04-27 02:32:58 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-04-27 02:32:58 -0500
commit601b75a1e4158dbf0c293e682d5db0078a41e736 (patch)
treead577e3aba7edfdaf777c59f245ba405de4dde53
parent5d286832f272ba6d1a955d4b952f34ed374bbf30 (diff)
downloadtdebase-601b75a1e4158dbf0c293e682d5db0078a41e736.tar.gz
tdebase-601b75a1e4158dbf0c293e682d5db0078a41e736.zip
Fix screen saver not engaging correctly
Fix graphical glitches in the lock process
-rw-r--r--kdesktop/lock/lockprocess.cc17
-rw-r--r--kdesktop/lock/main.cc2
2 files changed, 13 insertions, 6 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index a0600f893..f1426194e 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(tqt_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 98f59a952..a28d88330 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();