Windows/Linux: Fix scrolling in popup lists with high-dpi.

This commit is contained in:
Marshall Greenblatt 2020-10-15 16:03:32 -04:00
parent e618f44667
commit a1ba0c9166
2 changed files with 20 additions and 0 deletions

View File

@ -516,5 +516,10 @@ patches = [
# Linux: Fix Sharesheet undefined symbol error.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1123388
'name': 'chrome_browser_sharesheet_1123388',
},
{
# Windows/Linux: Fix scrolling in popup lists with high-dpi.
# https://crrev.com/97514ca869
'name': 'webkit_widget_base_2444320',
}
]

View File

@ -0,0 +1,15 @@
diff --git third_party/blink/renderer/platform/widget/widget_base.cc third_party/blink/renderer/platform/widget/widget_base.cc
index 048460f4dd81..59a70580ded0 100644
--- third_party/blink/renderer/platform/widget/widget_base.cc
+++ third_party/blink/renderer/platform/widget/widget_base.cc
@@ -1281,8 +1281,8 @@ gfx::Point WidgetBase::BlinkSpaceToFlooredDIPs(const gfx::Point& point) {
return point;
// TODO(danakj): Should this be GetScreenInfo() so it changes under emulation?
// TODO(dtapuska): Determine if this should be a floor vs rounded.
- return gfx::ScaleToFlooredPoint(
- point, client_->GetOriginalScreenInfo().device_scale_factor);
+ float reverse = 1 / client_->GetOriginalScreenInfo().device_scale_factor;
+ return gfx::ScaleToFlooredPoint(point, reverse);
}
gfx::Size WidgetBase::DIPsToCeiledBlinkSpace(const gfx::Size& size) {