summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@nokia.com>2010-06-21 09:09:29 (GMT)
committerJoerg Bornemann <joerg.bornemann@nokia.com>2010-06-21 09:09:29 (GMT)
commit7ed3e0085331e911b231d26c58a4e09e0e7aeffb (patch)
tree55ad7c06e4de988f8ce8f4948d0717e005b201d5
parent2fdac06f820f2362d3ca83ab6d73ed874d903098 (diff)
downloadQt-7ed3e0085331e911b231d26c58a4e09e0e7aeffb.zip
Qt-7ed3e0085331e911b231d26c58a4e09e0e7aeffb.tar.gz
Qt-7ed3e0085331e911b231d26c58a4e09e0e7aeffb.tar.bz2
fix issue wrt posted events on Windows CE
GetQueueStatus(QS_TIMER) is unreliable if the application has a menu on Windows CE. This patch uses PeekMessage(WM_TIMER) instead. Task-number: QTBUG-10714 Reviewed-by: bhughes
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index cede810..e3f537f 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -516,8 +516,12 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp)
if (q) {
QEventDispatcherWin32Private *d = q->d_func();
int localSerialNumber = d->serialNumber;
+#ifdef Q_OS_WINCE
+ MSG dummyMsg;
+ if (HIWORD(GetQueueStatus(QS_INPUT)) == 0
+ && PeekMessage(&dummyMsg, 0, WM_TIMER, WM_TIMER, PM_NOREMOVE) == 0
+#else
if (HIWORD(GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER)) == 0
-#ifndef Q_OS_WINCE
|| GetMessageTime() - d->lastMessageTime >= 10
#endif
) {