diff options
8 files changed, 25 insertions, 2 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 8b1a9075b..994e3a3d6 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -934,9 +934,9 @@ void RenderWidgetHostViewQt::visualPropertiesChanged() m_viewRectInDips = toGfx(m_delegate->viewGeometry().toAlignedRect()); gfx::Rect oldWindowRect = m_windowRectInDips; - QWindow *window = m_delegate->window(); - m_windowRectInDips = window ? toGfx(window->frameGeometry()) : gfx::Rect(); + m_windowRectInDips = toGfx(m_delegate->windowGeometry()); + QWindow *window = m_delegate->window(); content::ScreenInfo oldScreenInfo = m_screenInfo; m_screenInfo = screenInfoFromQScreen(window ? window->screen() : nullptr); diff --git a/src/core/render_widget_host_view_qt_delegate.h b/src/core/render_widget_host_view_qt_delegate.h index cbf92a8d4..6066284d9 100644 --- a/src/core/render_widget_host_view_qt_delegate.h +++ b/src/core/render_widget_host_view_qt_delegate.h @@ -91,6 +91,7 @@ public: virtual ~RenderWidgetHostViewQtDelegate() { } virtual void initAsPopup(const QRect&) = 0; virtual QRectF viewGeometry() const = 0; + virtual QRect windowGeometry() const = 0; virtual void setKeyboardFocus() = 0; virtual bool hasKeyboardFocus() = 0; virtual void lockMouse() = 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 e756ee157..4d3a71a79 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -104,6 +104,13 @@ QRectF RenderWidgetHostViewQtDelegateQuick::viewGeometry() const return QRectF(mapToGlobal(QPointF(0, 0)), size()); } +QRect RenderWidgetHostViewQtDelegateQuick::windowGeometry() const +{ + if (!window()) + return QRect(); + return window()->frameGeometry(); +} + void RenderWidgetHostViewQtDelegateQuick::setKeyboardFocus() { setFocus(true); diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h index 4edf37cff..00158b3ac 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h @@ -60,6 +60,7 @@ public: void initAsPopup(const QRect&) override; QRectF viewGeometry() const override; + QRect windowGeometry() const override; void setKeyboardFocus() override; bool hasKeyboardFocus() override; void lockMouse() override; 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 3c6c743e0..91ef84960 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp @@ -67,6 +67,11 @@ QRectF RenderWidgetHostViewQtDelegateQuickWindow::viewGeometry() const return m_realDelegate->viewGeometry(); } +QRect RenderWidgetHostViewQtDelegateQuickWindow::windowGeometry() const +{ + return frameGeometry(); +} + void RenderWidgetHostViewQtDelegateQuickWindow::show() { QQuickWindow::show(); diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h index 039f6102a..35a30d976 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h @@ -57,6 +57,7 @@ public: void initAsPopup(const QRect&) override; QRectF viewGeometry() const override; + QRect windowGeometry() const override; void setKeyboardFocus() override {} bool hasKeyboardFocus() override { return false; } void lockMouse() override {} 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 140314681..817d6e408 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -238,6 +238,13 @@ QRectF RenderWidgetHostViewQtDelegateWidget::viewGeometry() const return QRectF(mapToGlobal(pos()), size()); } +QRect RenderWidgetHostViewQtDelegateWidget::windowGeometry() const +{ + if (!window()) + return QRect(); + return window()->frameGeometry(); +} + void RenderWidgetHostViewQtDelegateWidget::setKeyboardFocus() { // The root item always has focus within the root focus scope: diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h index a736aa5cf..7746c4405 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h @@ -67,6 +67,7 @@ public: void initAsPopup(const QRect&) override; QRectF viewGeometry() const override; + QRect windowGeometry() const override; void setKeyboardFocus() override; bool hasKeyboardFocus() override; void lockMouse() override; |