diff options
Diffstat (limited to 'src/webengine')
4 files changed, 18 insertions, 18 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index ac19de15d..587d3aa9f 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -133,7 +133,7 @@ RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHo if (mode == HardwareAccelerationMode) { RenderWidgetHostViewQtDelegateQuick *quickDelegate = new RenderWidgetHostViewQtDelegateQuick(client, /*isPopup = */true); if (hasWindowCapability) { - RenderWidgetHostViewQtDelegateQuickWindow *wrapperWindow = new RenderWidgetHostViewQtDelegateQuickWindow(quickDelegate, q); + RenderWidgetHostViewQtDelegateQuickWindow *wrapperWindow = new RenderWidgetHostViewQtDelegateQuickWindow(quickDelegate); quickDelegate->setParentItem(wrapperWindow->contentItem()); return wrapperWindow; } @@ -142,7 +142,7 @@ RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHo } RenderWidgetHostViewQtDelegateQuickPainted *paintedDelegate = new RenderWidgetHostViewQtDelegateQuickPainted(client, /*isPopup = */true); if (hasWindowCapability) { - RenderWidgetHostViewQtDelegateQuickWindow *wrapperWindow = new RenderWidgetHostViewQtDelegateQuickWindow(paintedDelegate, q); + RenderWidgetHostViewQtDelegateQuickWindow *wrapperWindow = new RenderWidgetHostViewQtDelegateQuickWindow(paintedDelegate); paintedDelegate->setParentItem(wrapperWindow->contentItem()); return wrapperWindow; } @@ -252,6 +252,12 @@ QRectF QQuickWebEngineViewPrivate::viewportRect() const return QRectF(q->x(), q->y(), q->width(), q->height()); } +QPoint QQuickWebEngineViewPrivate::mapToGlobal(const QPoint &posInView) const +{ + Q_Q(const QQuickWebEngineView); + return q->window() ? q->window()->mapToGlobal(posInView) : QPoint(); +} + qreal QQuickWebEngineViewPrivate::dpiScale() const { return m_dpiScale; diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index be5318af4..cf9d58e68 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -133,6 +133,7 @@ public: virtual void loadProgressChanged(int progress) Q_DECL_OVERRIDE; virtual void selectionChanged() Q_DECL_OVERRIDE { } virtual QRectF viewportRect() const Q_DECL_OVERRIDE; + virtual QPoint mapToGlobal(const QPoint &posInView) const Q_DECL_OVERRIDE; virtual qreal dpiScale() const Q_DECL_OVERRIDE; virtual void loadStarted(const QUrl &provisionalUrl) Q_DECL_OVERRIDE; virtual void loadCommitted() Q_DECL_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 b1f2d7cea..7bf19d17a 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp @@ -44,9 +44,8 @@ #include <QQuickItem> -RenderWidgetHostViewQtDelegateQuickWindow::RenderWidgetHostViewQtDelegateQuickWindow(RenderWidgetHostViewQtDelegate *realDelegate, QQuickItem *parent) +RenderWidgetHostViewQtDelegateQuickWindow::RenderWidgetHostViewQtDelegateQuickWindow(RenderWidgetHostViewQtDelegate *realDelegate) : m_realDelegate(realDelegate) - , m_parentView(parent) { setFlags(Qt::ToolTip | Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); } @@ -62,13 +61,10 @@ void RenderWidgetHostViewQtDelegateQuickWindow::initAsChild(WebContentsAdapterCl Q_UNREACHABLE(); } -void RenderWidgetHostViewQtDelegateQuickWindow::initAsPopup(const QRect &rect) +void RenderWidgetHostViewQtDelegateQuickWindow::initAsPopup(const QRect &screenRect) { - Q_ASSERT(m_parentView); - QPoint pos = m_parentView->window()->mapToGlobal(rect.topLeft()); - QRect geometry = QRect(pos, rect.size()); - m_realDelegate->initAsPopup(QRect(QPoint(0, 0), rect.size())); - setGeometry(geometry); + m_realDelegate->initAsPopup(QRect(QPoint(0, 0), screenRect.size())); + setGeometry(screenRect); raise(); show(); } @@ -95,7 +91,7 @@ bool RenderWidgetHostViewQtDelegateQuickWindow::isVisible() const QWindow *RenderWidgetHostViewQtDelegateQuickWindow::window() const { - return m_parentView->window(); + return const_cast<RenderWidgetHostViewQtDelegateQuickWindow*>(this); } void RenderWidgetHostViewQtDelegateQuickWindow::update(const QRect &rect) @@ -116,11 +112,9 @@ void RenderWidgetHostViewQtDelegateQuickWindow::resize(int width, int height) m_realDelegate->resize(width, height); } -void RenderWidgetHostViewQtDelegateQuickWindow::move(const QPoint &pos) +void RenderWidgetHostViewQtDelegateQuickWindow::move(const QPoint &screenPos) { - Q_ASSERT(m_parentView); - QPoint mapped = m_parentView->window()->mapToGlobal(pos); - QQuickWindow::setPosition(mapped.x(), mapped.y()); + QQuickWindow::setPosition(screenPos); } void RenderWidgetHostViewQtDelegateQuickWindow::setTooltip(const QString &tooltip) 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 9b959f02b..6adac5e95 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h @@ -52,7 +52,7 @@ class RenderWidgetHostViewQtDelegateQuickWindow : public QQuickWindow , public RenderWidgetHostViewQtDelegate { public: - RenderWidgetHostViewQtDelegateQuickWindow(RenderWidgetHostViewQtDelegate *realDelegate, QQuickItem *parent); + RenderWidgetHostViewQtDelegateQuickWindow(RenderWidgetHostViewQtDelegate *realDelegate); ~RenderWidgetHostViewQtDelegateQuickWindow(); virtual void initAsChild(WebContentsAdapterClient* container) Q_DECL_OVERRIDE; @@ -67,7 +67,7 @@ public: virtual void update(const QRect& rect = QRect()) Q_DECL_OVERRIDE; virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE; virtual void resize(int width, int height) Q_DECL_OVERRIDE; - virtual void move(const QPoint &) Q_DECL_OVERRIDE; + virtual void move(const QPoint &screenPos) Q_DECL_OVERRIDE; virtual void inputMethodStateChanged(bool) Q_DECL_OVERRIDE {} virtual bool supportsHardwareAcceleration() const Q_DECL_OVERRIDE { @@ -78,7 +78,6 @@ public: private: QScopedPointer<RenderWidgetHostViewQtDelegate> m_realDelegate; - QQuickItem *m_parentView; }; #endif // RENDER_WIDGET_HOST_VIEW_QT_DELEGATE_QUICKWINDOW_H |