diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-05-29 13:19:03 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-06-08 11:12:36 +0000 |
commit | 532cc891fdad5e329bb31724f527bfba1e2e8a44 (patch) | |
tree | 35c62428a36f2fb67bb5ee731a40c671cb03c0cf /src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | |
parent | 9da1f08d224bc94f81ae72c4353bf234af6f8592 (diff) |
Override shortcuts only when an HTML input field has focus
Otherwise an application shortcut like Shift+Delete would no longer
work when webengine has focus (e.g. "delete mail" in KMail)
This removes unconditional calls to editorActionForKeyEvent for
ShortcutOverride event handling. We can remove those, because the key
sequences that are checked by editorActionForKeyEvent are a subset of
the key sequences checked by isCommonTextEditShortcut.
This amends commit 3902b27e.
Change-Id: I12a98368381edef36f11457c8b864d843efb871a
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp')
-rw-r--r-- | src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp index c608ba2aa..d02191b23 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -59,15 +59,6 @@ namespace QtWebEngineCore { -static bool handleShortcutOverrideEvent(RenderWidgetHostViewQtDelegateClient *client, QKeyEvent *ke) -{ - if (client->handleShortcutOverrideEvent(ke)) - return true; - if (editorActionForKeyEvent(ke) != QWebEnginePage::NoWebAction) - ke->accept(); - return true; -} - class RenderWidgetHostViewQuickItem : public QQuickItem { public: RenderWidgetHostViewQuickItem(RenderWidgetHostViewQtDelegateClient *client) : m_client(client) @@ -79,10 +70,8 @@ public: protected: bool event(QEvent *event) override { - if (event->type() == QEvent::ShortcutOverride) { - handleShortcutOverrideEvent(m_client, static_cast<QKeyEvent *>(event)); - return true; - } + if (event->type() == QEvent::ShortcutOverride) + return m_client->handleShortcutOverrideEvent(static_cast<QKeyEvent *>(event)); return QQuickItem::event(event); } void focusInEvent(QFocusEvent *event) override @@ -454,10 +443,8 @@ bool RenderWidgetHostViewQtDelegateWidget::event(QEvent *event) // We forward focus events later, once they have made it to the m_rootItem. return QQuickWidget::event(event); case QEvent::ShortcutOverride: - if (event->type() == QEvent::ShortcutOverride) { - handleShortcutOverrideEvent(m_client, static_cast<QKeyEvent *>(event)); + if (m_client->handleShortcutOverrideEvent(static_cast<QKeyEvent *>(event))) return true; - } break; case QEvent::DragEnter: case QEvent::DragLeave: |