summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock/lockprocess.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kdesktop/lock/lockprocess.cc')
-rw-r--r--kdesktop/lock/lockprocess.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index 1a58d4e52..47fad586c 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -58,6 +58,7 @@
#include <tqimage.h>
#include <tqregexp.h>
#include <tqpainter.h>
+#include <tqeventloop.h>
#include <tqdatetime.h>
@@ -1303,9 +1304,19 @@ bool LockProcess::startSaver()
connect( mEnsureScreenHiddenTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotForcePaintBackground()) );
mEnsureScreenHiddenTimer->start(DESKTOP_WALLPAPER_OBTAIN_TIMEOUT_MS, true);
}
-
+
+ int exitTimer = 0;
while ((backingPixmap.isNull()) && (mEnsureScreenHiddenTimer->isActive())) {
- kapp->processEvents();
+ kapp->eventLoop()->processEvents(TQEventLoop::ExcludeUserInput);
+
+ // HACK
+ // Work around an issue with the underlying system whereby the TQTimer sometimes fails to time out!
+ // This issue was reported in Bug #1288
+ usleep(100);
+ exitTimer++;
+ if (exitTimer > (DESKTOP_WALLPAPER_OBTAIN_TIMEOUT_MS*10)) {
+ break;
+ }
}
}
}