diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2023-01-06 09:40:24 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2023-01-13 09:07:48 +0100 |
commit | dcbcb44f0b5fb5c901594d9b0e6c4c5476709a10 (patch) | |
tree | 6e4b9a9700481c23b893459cc1b9441cf4c45a3c /src/core/render_widget_host_view_qt.cpp | |
parent | 03e23a17da26ba59b2a6700ed3cededfd70d6e13 (diff) |
Fix contentsSize and scrollPosition on High DPI screens
Provide the same values what are available from JavaScript.
Pick-to: 6.5
Change-Id: I9e047d749279934d0c8ccd45710571e8c7745859
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/render_widget_host_view_qt.cpp')
-rw-r--r-- | src/core/render_widget_host_view_qt.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 5d8f15321..177e3c56e 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -1008,12 +1008,17 @@ void RenderWidgetHostViewQt::OnRenderFrameMetadataChangedAfterActivation(base::T m_touchSelectionControllerClient->UpdateClientSelectionBounds(m_selectionStart, m_selectionEnd); } - gfx::PointF scrollOffset = metadata.root_scroll_offset.value_or(gfx::PointF()); - gfx::SizeF contentsSize = metadata.root_layer_size; + gfx::PointF scrollOffset = gfx::PointF(); + if (metadata.root_scroll_offset.has_value()) + scrollOffset = gfx::ScalePoint(metadata.root_scroll_offset.value(), + 1 / metadata.device_scale_factor); std::swap(m_lastScrollOffset, scrollOffset); - std::swap(m_lastContentsSize, contentsSize); if (m_adapterClient && scrollOffset != m_lastScrollOffset) m_adapterClient->updateScrollPosition(toQt(m_lastScrollOffset)); + + gfx::SizeF contentsSize = + gfx::ScaleSize(metadata.root_layer_size, 1 / metadata.device_scale_factor); + std::swap(m_lastContentsSize, contentsSize); if (m_adapterClient && contentsSize != m_lastContentsSize) m_adapterClient->updateContentsSize(toQt(m_lastContentsSize)); } |