From 7ed3e0085331e911b231d26c58a4e09e0e7aeffb Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 21 Jun 2010 11:09:29 +0200 Subject: 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 --- src/corelib/kernel/qeventdispatcher_win.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 ) { -- cgit v0.12