diff options
author | Teemu Holappa <teemu.holappa@qt.io> | 2019-10-09 10:52:47 +0300 |
---|---|---|
committer | Teemu Holappa <teemu.holappa@qt.io> | 2019-10-09 20:02:05 +0300 |
commit | 6b6ef3a8417e628ca01a1c2cad81af69ea5c9d3a (patch) | |
tree | 7d3164b0c344c2a5fd5236bd815ff9e82441f3f9 /src/quick | |
parent | aa02de3c2a3a41e897814b751ec810074f250893 (diff) |
Send ShortcutOverride event when receiving a non-spontaneous key press
This is a very similar fix what's been done to the widgets to fix
QTBUG-48325. In QQuickWindow there is added the sending of
a ShortCutOverride even when a non-spontaneous KeyPress event
is received.
Task-number: QTBUG-78304
Change-Id: Icb267e611248460533f20e84deef71da6b481cd2
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 64d7232354..b83c9159a4 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -102,6 +102,7 @@ Q_LOGGING_CATEGORY(DBG_DIRTY, "qt.quick.dirty") Q_LOGGING_CATEGORY(lcTransient, "qt.quick.window.transient") extern Q_GUI_EXPORT QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_format, bool include_alpha); +extern Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text = QString(), bool autorep = false, ushort count = 1); bool QQuickWindowPrivate::defaultAlphaBuffer = false; @@ -1794,6 +1795,13 @@ void QQuickWindowPrivate::deliverKeyEvent(QKeyEvent *e) { if (activeFocusItem) { QQuickItem *item = activeFocusItem; + + // In case of generated event, trigger ShortcutOverride event + if (e->type() == QEvent::KeyPress && e->spontaneous() == false) + qt_sendShortcutOverrideEvent(item, e->timestamp(), + e->key(), e->modifiers(), e->text(), + e->isAutoRepeat(), e->count()); + e->accept(); QCoreApplication::sendEvent(item, e); while (!e->isAccepted() && (item = item->parentItem())) { |