summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaiwei Li <daiweili@suitabletech.com>2016-02-20 22:41:43 -0800
committerMorten Johan Sørvig <morten.sorvig@theqtcompany.com>2016-02-23 14:13:59 +0000
commit8947262e3bc35355f2267337e74f8cba4b219a64 (patch)
tree4a98c3cc9e32dc10863adfd48114db94da55663a
parent0ab8e5972fa3d846f999a300f86b5b6ea805841f (diff)
QPepperEventDispatcher: Fix a hang
There are some events that don't get processed by a call to QEventDispatcherQPA::processEvents. If no events were processed, we should stop trying to call processEvents. Change-Id: I6bef9e362686ae04740c001e6153e94907e433fb Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
-rw-r--r--src/plugins/platforms/pepper/qpeppereventdispatcher.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/platforms/pepper/qpeppereventdispatcher.cpp b/src/plugins/platforms/pepper/qpeppereventdispatcher.cpp
index 7615b07081..c5549c75f7 100644
--- a/src/plugins/platforms/pepper/qpeppereventdispatcher.cpp
+++ b/src/plugins/platforms/pepper/qpeppereventdispatcher.cpp
@@ -53,9 +53,10 @@ QPepperEventDispatcher::~QPepperEventDispatcher() {}
bool QPepperEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags)
{
+ bool processed = false;
do {
- QUnixEventDispatcherQPA::processEvents(flags);
- } while (hasPendingEvents());
+ processed = QUnixEventDispatcherQPA::processEvents(flags);
+ } while (processed && hasPendingEvents());
return true;
}