diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | 7 |
1 files changed, 6 insertions, 1 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 aa136b662..4fa0667b8 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -76,11 +76,16 @@ protected: } void focusInEvent(QFocusEvent *event) override { + Q_ASSERT(event->reason() != Qt::PopupFocusReason); m_client->forwardEvent(event); } void focusOutEvent(QFocusEvent *event) override { - m_client->forwardEvent(event); + // The keyboard events are supposed to go to the parent RenderHostView and WebUI + // popups should never have focus, therefore ignore focusOutEvent as losing focus + // will trigger pop close request from blink + if (event->reason() != Qt::PopupFocusReason) + m_client->forwardEvent(event); } void inputMethodEvent(QInputMethodEvent *event) override { |