diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-20 15:38:53 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-20 15:38:53 +0100 |
commit | d5500d96005c2d617e14a43b41462b48e59fdd65 (patch) | |
tree | 28751d25c917200fdef079d8645b6a471904b33d | |
parent | a8f65c52b9db2afc956004c207cdc0b3635a3950 (diff) | |
parent | 1e32e71403a6a9cb117343464fbc34564598e831 (diff) | |
download | qtwayland-d5500d96005c2d617e14a43b41462b48e59fdd65.tar.gz |
Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I03fd08fc0576ffac813f64905c23de4d65e67433
-rw-r--r-- | src/client/qwaylanddisplay.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp index 23645c8c..b985f10e 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); |