From c3f53cadb902f711a90b744c5b186208cf08826b Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 28 Aug 2013 20:03:55 +0200 Subject: Fix rendering on Retina displays Since the QWindow returned by the RWHV delegates was always 0 we never actually propagated a valid WebScreenInfo to chromium. Additionally the painting and scrolling in the backing store had to be fixed so that the device pixel ratio is taken into account. Change-Id: I22dc135e8e090362201292863ed911464b9fc133 Reviewed-by: Jocelyn Turcotte --- lib/widgets/render_widget_host_view_qt_delegate_widget.cpp | 10 +++++++++- lib/widgets/render_widget_host_view_qt_delegate_widget.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'lib/widgets') diff --git a/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp b/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp index 845b67f55..1c7af34d8 100644 --- a/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/lib/widgets/render_widget_host_view_qt_delegate_widget.cpp @@ -48,6 +48,7 @@ #include #include #include +#include RenderWidgetHostViewQtDelegateWidget::RenderWidgetHostViewQtDelegateWidget(QWidget *parent) : QWidget(parent) @@ -111,9 +112,16 @@ bool RenderWidgetHostViewQtDelegateWidget::isVisible() const return QWidget::isVisible(); } +WId RenderWidgetHostViewQtDelegateWidget::nativeWindowIdForCompositor() const +{ + QWindow* window = QWidget::windowHandle(); + return window ? window->winId() : 0; +} + QWindow* RenderWidgetHostViewQtDelegateWidget::window() const { - return QWidget::windowHandle(); + const QWidget* root = QWidget::window(); + return root ? root->windowHandle() : 0; } void RenderWidgetHostViewQtDelegateWidget::update(const QRect& rect) diff --git a/lib/widgets/render_widget_host_view_qt_delegate_widget.h b/lib/widgets/render_widget_host_view_qt_delegate_widget.h index 1eec64149..c133edafd 100644 --- a/lib/widgets/render_widget_host_view_qt_delegate_widget.h +++ b/lib/widgets/render_widget_host_view_qt_delegate_widget.h @@ -61,6 +61,7 @@ public: virtual void show(); virtual void hide(); virtual bool isVisible() const; + virtual WId nativeWindowIdForCompositor() const; virtual QWindow* window() const; virtual void update(const QRect& rect = QRect()); virtual void updateCursor(const QCursor &); -- cgit v1.2.3