Warning, /graphics/krita/3rdparty/ext_qt/0030-Android-prevent-out-of-order-events.patch is written in an unsupported language. File is not indexed.
0001 From c9d3ed9444341a60bb67fc11a182da3e29b13a99 Mon Sep 17 00:00:00 2001 0002 From: Sharaf Zaman <sharafzaz121@gmail.com> 0003 Date: Wed, 6 Jan 2021 12:12:09 +0000 0004 Subject: [PATCH 30/46] Android: prevent out-of-order events 0005 0006 QPlatformWindow::setVisible() flushes internal event queue which then 0007 sends events to widgets out-of-order fashion, which can make some 0008 widgets hidden thus freezing the entire app. We need event flushing for 0009 widget to be rendered properly, but we don't have to send user input 0010 events. 0011 --- 0012 src/plugins/platforms/android/qandroidplatformwindow.cpp | 9 +++++++-- 0013 1 file changed, 7 insertions(+), 2 deletions(-) 0014 0015 diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp 0016 index c095f51fa3..61e6f360de 100644 0017 --- a/src/plugins/platforms/android/qandroidplatformwindow.cpp 0018 +++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp 0019 @@ -93,8 +93,13 @@ void QAndroidPlatformWindow::setVisible(bool visible) 0020 platformScreen()->removeWindow(this); 0021 0022 QRect availableGeometry = screen()->availableGeometry(); 0023 - if (geometry().width() > 0 && geometry().height() > 0 && availableGeometry.width() > 0 && availableGeometry.height() > 0) 0024 - QPlatformWindow::setVisible(visible); 0025 + if (geometry().width() > 0 && geometry().height() > 0 && availableGeometry.width() > 0 0026 + && availableGeometry.height() > 0) { 0027 + QWindowSystemInterface::handleExposeEvent(window(), 0028 + QRect(QPoint(), geometry().size())); 0029 + QWindowSystemInterface::flushWindowSystemEvents( 0030 + QEventLoop::ExcludeUserInputEvents); 0031 + } 0032 } 0033 0034 void QAndroidPlatformWindow::setWindowState(Qt::WindowStates state) 0035 -- 0036 2.33.0 0037