aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quicktemplates2/qquickshortcutcontext.cpp5
-rw-r--r--tests/auto/quickcontrols2/controls/data/tst_tooltip.qml8
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)