From 6dc8f47bb05a8acb3cbcc697e0dc05356a01d4cf Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Thu, 3 Apr 2014 11:16:42 +0000 Subject: Compress touch events in QQuickWindow. Instead of sending multiple touch updates per frame, we store the last one and flush the pending events just before we enter into the scene graph sync phase. [ChangeLog][QtQuick] QQuickWindow will compresses touch events and delivers at most one touch event per frame. Done-with: Robin Burchell Change-Id: Ia0169bc4a3f0da67709b91ca65c326934b55d372 Reviewed-by: Laszlo Agocs Reviewed-by: Shawn Rutledge --- src/quick/scenegraph/qsgrenderloop.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/quick/scenegraph/qsgrenderloop.cpp') diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp index 6647ec83d0..00e67aa944 100644 --- a/src/quick/scenegraph/qsgrenderloop.cpp +++ b/src/quick/scenegraph/qsgrenderloop.cpp @@ -334,6 +334,12 @@ void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow *window) if (!current) return; + if (!data.grabOnly) { + cd->flushDelayedTouchEvent(); + // Event delivery/processing triggered the window to be deleted or stop rendering. + if (!m_windows.contains(window)) + return; + } cd->polishItems(); emit window->afterAnimating(); -- cgit v1.2.3