diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2019-11-16 20:39:20 +0200 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2020-07-29 18:34:34 +0300 |
commit | 8969070cfdeab4502a693bdf46a572cbea50bab3 (patch) | |
tree | 32b145683044e02725a16cb6adba57d7d4346643 /src/corelib/kernel/qeventdispatcher_win_p.h | |
parent | 9d55d6b45bfc1f4e3c603bcc95f694ebe3a9206f (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.h | 4 |
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; |