summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-20 15:38:53 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-20 15:38:53 +0100
commitd5500d96005c2d617e14a43b41462b48e59fdd65 (patch)
tree28751d25c917200fdef079d8645b6a471904b33d
parenta8f65c52b9db2afc956004c207cdc0b3635a3950 (diff)
parent1e32e71403a6a9cb117343464fbc34564598e831 (diff)
Merge remote-tracking branch 'origin/5.4' into 5.5
-rw-r--r--src/client/qwaylanddisplay.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index 23645c8cc..b985f10e5 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -344,8 +344,15 @@ void QWaylandDisplay::forceRoundTrip()
wl_proxy_set_queue((struct wl_proxy *)callback, mEventQueue);
wl_callback_add_listener(callback, &sync_listener, &done);
flushRequests();
- while (!done && ret >= 0)
- ret = wl_display_dispatch_queue(mDisplay, mEventQueue);
+ if (QThread::currentThread()->eventDispatcher()) {
+ while (!done && ret >= 0) {
+ QThread::currentThread()->eventDispatcher()->processEvents(QEventLoop::WaitForMoreEvents);
+ ret = wl_display_dispatch_queue_pending(mDisplay, mEventQueue);
+ }
+ } else {
+ while (!done && ret >= 0)
+ ret = wl_display_dispatch_queue(mDisplay, mEventQueue);
+ }
if (ret == -1 && !done)
wl_callback_destroy(callback);