diff options
-rw-r--r-- | src/quicktemplates2/qquickshortcutcontext.cpp | 5 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/controls/data/tst_tooltip.qml | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickshortcutcontext.cpp b/src/quicktemplates2/qquickshortcutcontext.cpp index 70dc912fa8..3fdbea2865 100644 --- a/src/quicktemplates2/qquickshortcutcontext.cpp +++ b/src/quicktemplates2/qquickshortcutcontext.cpp @@ -44,11 +44,14 @@ #include "qquickmenu_p_p.h" #include "qquickpopup_p.h" +#include <QtCore/qloggingcategory.h> #include <QtGui/qguiapplication.h> #include <QtQuick/qquickrendercontrol.h> QT_BEGIN_NAMESPACE +Q_LOGGING_CATEGORY(lcContextMatcher, "qt.quick.controls.shortcutcontext.matcher") + static bool isBlockedByPopup(QQuickItem *item) { if (!item || !item->window()) @@ -100,6 +103,8 @@ bool QQuickShortcutContext::matcher(QObject *obj, Qt::ShortcutContext context) } if (QWindow *renderWindow = QQuickRenderControl::renderWindowFor(qobject_cast<QQuickWindow *>(obj))) obj = renderWindow; + qCDebug(lcContextMatcher) << "obj" << obj << "focusWindow" << QGuiApplication::focusWindow() + << "!isBlockedByPopup(item)" << !isBlockedByPopup(item); return obj && obj == QGuiApplication::focusWindow() && !isBlockedByPopup(item); default: return false; diff --git a/tests/auto/quickcontrols2/controls/data/tst_tooltip.qml b/tests/auto/quickcontrols2/controls/data/tst_tooltip.qml index 3b3e0b43c1..89e179575f 100644 --- a/tests/auto/quickcontrols2/controls/data/tst_tooltip.qml +++ b/tests/auto/quickcontrols2/controls/data/tst_tooltip.qml @@ -296,7 +296,13 @@ TestCase { function test_activateShortcutWhileToolTipVisible() { if ((Qt.platform.pluginName === "offscreen") || (Qt.platform.pluginName === "minimal")) - skip("Mouse hoovering not functional on offscreen/minimal platforms") + skip("Mouse hovering not functional on offscreen/minimal platforms") + + // Window shortcuts (the default context for Shortcut) require the window to have focus. + var window = testCase.Window.window + verify(window) + window.requestActivate() + tryCompare(window, "active", true) var root = createTemporaryObject(buttonAndShortcutComponent, testCase) verify(root) |