summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-09-19 09:12:39 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-10-24 11:29:50 +0200
commitcb90cdbd65f960e31b0024503fdea58d358f76fd (patch)
treefa76fcd04ffd9d644ad134201bce44a3e4ff3b8d
parente1e4b1b780485f7d74ff8da997730a00e4a79a1f (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.cpp7
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h3
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