Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 1308553007: Convert MouseEvents from DIPS to Pixels before passing it to surfaces for hittesting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index b3490332609133ed2f72b0f2cf287204d83ed138..a938f7d279171194009db7da87a62727b57b97c8 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1593,8 +1593,16 @@ uint32_t RenderWidgetHostViewMac::GetSurfaceIdNamespace() {
uint32_t RenderWidgetHostViewMac::SurfaceIdNamespaceAtPoint(
const gfx::Point& point,
gfx::Point* transformed_point) {
- cc::SurfaceId id =
- delegated_frame_host_->SurfaceIdAtPoint(point, transformed_point);
+ // The surface hittest happens in device pixels, so we need to convert the
+ // |point| from DIPs to pixels before hittesting.
+ float scale_factor = gfx::Screen::GetScreenFor(cocoa_view_)
+ ->GetDisplayNearestWindow(cocoa_view_)
+ .device_scale_factor();
+ gfx::Point point_in_pixels = gfx::ConvertPointToPixel(scale_factor, point);
+ cc::SurfaceId id = delegated_frame_host_->SurfaceIdAtPoint(point_in_pixels,
+ transformed_point);
+ *transformed_point = gfx::ConvertPointToDIP(scale_factor, *transformed_point);
+
// It is possible that the renderer has not yet produced a surface, in which
// case we return our current namespace.
if (id.is_null())
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.cc ('k') | content/browser/site_per_process_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698