Warning, /graphics/krita/3rdparty/ext_qt/0111-Fix-unbalanced-KeyPress-Release-events-in-children-o.patch is written in an unsupported language. File is not indexed.
0001 From 55e6e6e995e642153abb95d3886a1ddf036c9de6 Mon Sep 17 00:00:00 2001 0002 From: Dmitry Kazakov <dimula73@gmail.com> 0003 Date: Sat, 13 Feb 2021 16:46:55 +0300 0004 Subject: [PATCH 07/43] Fix unbalanced KeyPress/Release events in children of 0005 QMdiArea 0006 0007 When the user presses Ctrl+Tab, QMdiArea is supposed to switch 0008 the active child window. When doing so, it eats the event. The 0009 problem is that is doesn't eat the ShortcutOverride event, 0010 which is kept unbalanced with the absent KeyRelease event. 0011 0012 See https://bugs.kde.org/show_bug.cgi?id=424319 0013 --- 0014 src/widgets/widgets/qmdiarea.cpp | 6 ++++-- 0015 1 file changed, 4 insertions(+), 2 deletions(-) 0016 0017 diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp 0018 index f32cd26478..d493a32b60 100644 0019 --- a/src/widgets/widgets/qmdiarea.cpp 0020 +++ b/src/widgets/widgets/qmdiarea.cpp 0021 @@ -2555,7 +2555,9 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event) 0022 0023 Q_D(QMdiArea); 0024 // Global key events with Ctrl modifier. 0025 - if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) { 0026 + if (event->type() == QEvent::KeyPress || 0027 + event->type() == QEvent::KeyRelease || 0028 + event->type() == QEvent::ShortcutOverride) { 0029 0030 QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); 0031 // Ingore key events without a Ctrl modifier (except for press/release on the modifier itself). 0032 @@ -2571,7 +2573,7 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event) 0033 if (!area) 0034 return QAbstractScrollArea::eventFilter(object, event); 0035 0036 - const bool keyPress = (event->type() == QEvent::KeyPress); 0037 + const bool keyPress = event->type() == QEvent::ShortcutOverride || event->type() == QEvent::KeyPress; 0038 0039 // 1) Ctrl-Tab once -> activate the previously active window. 0040 // 2) Ctrl-Tab (Tab, Tab, ...) -> iterate through all windows (activateNextSubWindow()). 0041 -- 0042 2.20.1.windows.1 0043