diff options
Diffstat (limited to 'src/corelib/kernel/qeventdispatcher_glib.cpp')
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_glib.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index 17830868da..e87e830c39 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -259,10 +259,11 @@ static gboolean postEventSourcePrepare(GSource *s, gint *timeout) gint dummy; if (!timeout) timeout = &dummy; - *timeout = data->canWait ? -1 : 0; + const bool canWait = data->canWaitLocked(); + *timeout = canWait ? -1 : 0; GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s); - return (!data->canWait + return (!canWait || (source->serialNumber.load() != source->lastSerialNumber)); } |