diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 0f9286252fdc4572a2703a2c550a4f04e5f130a6..572bc340ce67c2de66f7651ab0c76f73b99f0ed2 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -715,6 +715,16 @@ void RenderWidgetHostViewQt::notifyResize() m_host->WasResized(); } +void RenderWidgetHostViewQt::notifyShown() +{ + WasShown(); +} + +void RenderWidgetHostViewQt::notifyHidden() +{ + WasHidden(); +} + void RenderWidgetHostViewQt::windowBoundsChanged() { m_host->SendScreenRects(); diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h index 68330a486468452e00989cc4231f495cb1046188..248c52f6e71603332ff83d51df94e1b737c17c36 100644 --- a/src/core/render_widget_host_view_qt.h +++ b/src/core/render_widget_host_view_qt.h @@ -159,6 +159,8 @@ public: // Overridden from RenderWidgetHostViewQtDelegateClient. virtual QSGNode *updatePaintNode(QSGNode *) Q_DECL_OVERRIDE; virtual void notifyResize() Q_DECL_OVERRIDE; + virtual void notifyShown() Q_DECL_OVERRIDE; + virtual void notifyHidden() Q_DECL_OVERRIDE; virtual void windowBoundsChanged() Q_DECL_OVERRIDE; virtual void windowChanged() Q_DECL_OVERRIDE; virtual bool forwardEvent(QEvent *) Q_DECL_OVERRIDE; diff --git a/src/core/render_widget_host_view_qt_delegate.h b/src/core/render_widget_host_view_qt_delegate.h index a12f3055e1ada048faab496d11ff327557763a9a..da595b91f1192d4e26b1b0b0985d2d6447442a94 100644 --- a/src/core/render_widget_host_view_qt_delegate.h +++ b/src/core/render_widget_host_view_qt_delegate.h @@ -64,6 +64,8 @@ public: virtual ~RenderWidgetHostViewQtDelegateClient() { } virtual QSGNode *updatePaintNode(QSGNode *) = 0; virtual void notifyResize() = 0; + virtual void notifyShown() = 0; + virtual void notifyHidden() = 0; virtual void windowBoundsChanged() = 0; virtual void windowChanged() = 0; virtual bool forwardEvent(QEvent *) = 0; 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 0a534ac2c44316fe40ed4cf5b9a11e1eb9ddcbb0..a3999ccabd21d5071b84a822771101efdfb5c95e 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -120,11 +120,13 @@ void RenderWidgetHostViewQtDelegateQuick::unlockMouse() void RenderWidgetHostViewQtDelegateQuick::show() { setVisible(true); + m_client->notifyShown(); } void RenderWidgetHostViewQtDelegateQuick::hide() { setVisible(false); + m_client->notifyHidden(); } bool RenderWidgetHostViewQtDelegateQuick::isVisible() const diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp index 39c48ea5cf464f1d53f381be2fa2a08d4029b5e3..be240a8aeeaaf2974fd4a37187838fd72dcb6972 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp @@ -79,11 +79,13 @@ QRectF RenderWidgetHostViewQtDelegateQuickWindow::contentsRect() const void RenderWidgetHostViewQtDelegateQuickWindow::show() { QQuickWindow::show(); + m_realDelegate->show(); } void RenderWidgetHostViewQtDelegateQuickWindow::hide() { QQuickWindow::hide(); + m_realDelegate->hide(); } bool RenderWidgetHostViewQtDelegateQuickWindow::isVisible() const 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 865d0f93ff477b510badd0e61a115f4a3ac3dd26..d615b0f9cff5e0d8c54698a71ec4a1edd33ba336 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -136,13 +136,16 @@ void RenderWidgetHostViewQtDelegateWidget::show() { // Check if we're attached to a QWebEngineView, we don't // want to show anything else than popups as top-level. - if (parent() || m_isPopup) + if (parent() || m_isPopup) { QOpenGLWidget::show(); + m_client->notifyShown(); + } } void RenderWidgetHostViewQtDelegateWidget::hide() { QOpenGLWidget::hide(); + m_client->notifyHidden(); } bool RenderWidgetHostViewQtDelegateWidget::isVisible() const