From 99d46a8a918dee7323bc3d4f1624c47c097f9a3a Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 6 May 2019 14:45:09 +0200 Subject: Introduce RenderWidgetHostViewQtDelegateQuick::windowGeometry() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leave it up to hostview delegate to report window geometry. Change-Id: I19a4b911aa493fbc6f66c6169e7fbbb7bf674217 Reviewed-by: Jüri Valdmann --- src/core/render_widget_host_view_qt.cpp | 4 ++-- src/core/render_widget_host_view_qt_delegate.h | 1 + src/webengine/render_widget_host_view_qt_delegate_quick.cpp | 7 +++++++ src/webengine/render_widget_host_view_qt_delegate_quick.h | 1 + src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp | 5 +++++ src/webengine/render_widget_host_view_qt_delegate_quickwindow.h | 1 + .../render_widget_host_view_qt_delegate_widget.cpp | 7 +++++++ src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h | 1 + 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; -- cgit v1.2.3