summaryrefslogtreecommitdiffstats
path: root/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine/render_widget_host_view_qt_delegate_quick.cpp')
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
index 9fc1ed3eb..508420cf8 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -268,10 +268,15 @@ void RenderWidgetHostViewQtDelegateQuick::itemChange(ItemChange change, const It
if (value.window) {
m_windowConnections.append(connect(value.window, SIGNAL(xChanged(int)), SLOT(onWindowPosChanged())));
m_windowConnections.append(connect(value.window, SIGNAL(yChanged(int)), SLOT(onWindowPosChanged())));
+ if (!m_isPopup)
+ m_windowConnections.append(connect(value.window, SIGNAL(closing(QQuickCloseEvent *)), SLOT(onHide())));
}
if (m_initialized)
m_client->windowChanged();
+ } else if (change == QQuickItem::ItemVisibleHasChanged) {
+ if (!m_isPopup && !value.boolValue)
+ onHide();
}
}
@@ -285,4 +290,10 @@ void RenderWidgetHostViewQtDelegateQuick::onWindowPosChanged()
m_client->windowBoundsChanged();
}
+void RenderWidgetHostViewQtDelegateQuick::onHide()
+{
+ QFocusEvent event(QEvent::FocusOut, Qt::OtherFocusReason);
+ m_client->forwardEvent(&event);
+}
+
} // namespace QtWebEngineCore