diff options
author | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-11-11 11:44:51 (GMT) |
---|---|---|
committer | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-11-11 11:44:51 (GMT) |
commit | f1342b0697705b6424ba201854622f87f22484f7 (patch) | |
tree | e7b782e9d439a74754ddc91bf6d4ae6080879798 /src | |
parent | b111d0bb1f0483d507c758810a0f247cb8dd82c0 (diff) | |
parent | 791c4035c28257e5a8426e6519866546faaf5286 (diff) | |
download | Qt-f1342b0697705b6424ba201854622f87f22484f7.zip Qt-f1342b0697705b6424ba201854622f87f22484f7.tar.gz Qt-f1342b0697705b6424ba201854622f87f22484f7.tar.bz2 |
Merge branch '4.6-platform' into 4.6
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_win.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index f2e66c5..3050b82 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -70,7 +70,8 @@ extern uint qGlobalPostedEventsCount(); enum { WM_QT_SOCKETNOTIFIER = WM_USER, - WM_QT_SENDPOSTEDEVENTS = WM_USER + 1 + WM_QT_SENDPOSTEDEVENTS = WM_USER + 1, + SendPostedEventsTimerId = ~1u }; #if defined(Q_OS_WINCE) @@ -470,7 +471,7 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) } return 0; } else if (message == WM_TIMER) { - if (wp == ~1u) { + if (wp == SendPostedEventsTimerId) { KillTimer(d->internalHwnd, wp); int localSerialNumber = d->serialNumber; (void) d->wakeUps.fetchAndStoreRelease(0); @@ -488,7 +489,14 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) if (GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER) != 0) { // delay the next pass of sendPostedEvents() until we get the special // WM_TIMER, which allows all pending Windows messages to be processed - SetTimer(d->internalHwnd, ~1u, 0, 0); + if (SetTimer(d->internalHwnd, SendPostedEventsTimerId, 0, 0) == 0) { + // failed to start the timer, oops, clear wakeUps in an attempt to keep things running + qErrnoWarning("Qt: INTERNAL ERROR: failed to start sendPostedEvents() timer"); + d->wakeUps.fetchAndStoreRelease(0); + } else { + // SetTimer() succeeded, nothing to do now + ; + } } else { // nothing pending in the queue, let sendPostedEvents go through d->wakeUps.fetchAndStoreRelease(0); |