summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qeventdispatcher_win_p.h
diff options
context:
space:
mode:
authorAlex Trotsenko <alex1973tr@gmail.com>2019-11-16 20:39:20 +0200
committerAlex Trotsenko <alex1973tr@gmail.com>2020-07-29 18:34:34 +0300
commit8969070cfdeab4502a693bdf46a572cbea50bab3 (patch)
tree32b145683044e02725a16cb6adba57d7d4346643 /src/corelib/kernel/qeventdispatcher_win_p.h
parent9d55d6b45bfc1f4e3c603bcc95f694ebe3a9206f (diff)
QEventDispatcherWin32: redesign event notifiers activation
The previous implementation multiplexed callback-based event notification into a single proxy event (cf. 85403d0af), which was in turn object-waited for (this was the case since the beginning of public qt history). It makes more sense to multiplex into a posted message, because that also works with foreign event loops that do not know anything about our event objects. Task-number: QTBUG-64443 Change-Id: I97945ac8b5d7c8582701077134c0aef4f3b5a18f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/kernel/qeventdispatcher_win_p.h')
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h
index dbb30ab568..078329c43c 100644
--- a/src/corelib/kernel/qeventdispatcher_win_p.h
+++ b/src/corelib/kernel/qeventdispatcher_win_p.h
@@ -54,6 +54,7 @@
#include "QtCore/qabstracteventdispatcher.h"
#include "QtCore/qt_windows.h"
#include "QtCore/qhash.h"
+#include "QtCore/qatomic.h"
#include "qabstracteventdispatcher_p.h"
@@ -193,8 +194,9 @@ public:
bool closingDown = false;
bool winEventNotifierListModified = false;
- HANDLE winEventNotifierActivatedEvent;
+ QAtomicInt activateEventNotifiersPosted;
QList<QWinEventNotifier *> winEventNotifierList;
+ void postActivateEventNotifiers();
void activateEventNotifier(QWinEventNotifier * wen);
QList<MSG> queuedUserInputEvents;