diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-09-19 09:12:39 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-10-24 11:29:50 +0200 |
commit | cb90cdbd65f960e31b0024503fdea58d358f76fd (patch) | |
tree | fa76fcd04ffd9d644ad134201bce44a3e4ff3b8d | |
parent | e1e4b1b780485f7d74ff8da997730a00e4a79a1f (diff) |
Windows/MinGW: Fix posted events timer not stopping
Specify the type of the enum value SendPostedEventsWindowsTimerId
to be UINT_PTR to work with the g++ interpretation of enumeration
signedness and use the correct type for the returned timer id.
Fixes: QTBUG-78491
Change-Id: I7b3f306d3f60da7a21500ece5243ac90854ccf1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit d35de9e1b250ce46739dcb6afb9ae8a0247195c7)
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_win.cpp | 7 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_win_p.h | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index b3b6b1be20..115b01a457 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -83,7 +83,10 @@ enum { WM_QT_SOCKETNOTIFIER = WM_USER, WM_QT_SENDPOSTEDEVENTS = WM_USER + 1, WM_QT_ACTIVATENOTIFIERS = WM_USER + 2, - SendPostedEventsWindowsTimerId = ~1u +}; + +enum : UINT_PTR { + SendPostedEventsWindowsTimerId = ~UINT_PTR(1) }; class QEventDispatcherWin32Private; @@ -278,7 +281,7 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) // no more input or timer events in the message queue, we can allow posted events to be sent normally now if (d->sendPostedEventsWindowsTimerId != 0) { // stop the timer to send posted events, since we now allow the WM_QT_SENDPOSTEDEVENTS message - KillTimer(d->internalHwnd, d->sendPostedEventsWindowsTimerId); + KillTimer(d->internalHwnd, SendPostedEventsWindowsTimerId); d->sendPostedEventsWindowsTimerId = 0; } (void) d->wakeUps.fetchAndStoreRelease(0); diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h index 3bb618153b..4f8c93de81 100644 --- a/src/corelib/kernel/qeventdispatcher_win_p.h +++ b/src/corelib/kernel/qeventdispatcher_win_p.h @@ -173,7 +173,8 @@ public: // for controlling when to send posted events QAtomicInt serialNumber; - int lastSerialNumber, sendPostedEventsWindowsTimerId; + int lastSerialNumber; + UINT_PTR sendPostedEventsWindowsTimerId; QAtomicInt wakeUps; // timers |