Chromium Code Reviews| Index: ui/views/widget/desktop_aura/x11_topmost_window_finder.cc |
| diff --git a/ui/views/widget/desktop_aura/x11_topmost_window_finder.cc b/ui/views/widget/desktop_aura/x11_topmost_window_finder.cc |
| index d59b46cf3798755f1bfc8a11995b0723e64cbc18..cdb6aca33cf0725f4b5fb0ba16b06c0815e62fe1 100644 |
| --- a/ui/views/widget/desktop_aura/x11_topmost_window_finder.cc |
| +++ b/ui/views/widget/desktop_aura/x11_topmost_window_finder.cc |
| @@ -8,10 +8,24 @@ |
| #include "ui/aura/client/screen_position_client.h" |
| #include "ui/aura/window.h" |
| +#include "ui/gfx/screen.h" |
| #include "ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h" |
| namespace views { |
| +float GetDeviceScaleFactor() { |
| + gfx::Display display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
| + return display.device_scale_factor(); |
| +} |
| + |
| +gfx::Point ScreenToDIPPoint(const gfx::Point& pixel_point) { |
| + return ToFlooredPoint(ScalePoint(pixel_point, 1.0f / GetDeviceScaleFactor())); |
| +} |
| + |
| +gfx::Point DIPToScreenPoint(const gfx::Point& dip_point) { |
| + return ToFlooredPoint(gfx::ScalePoint(dip_point, GetDeviceScaleFactor())); |
| +} |
| + |
| X11TopmostWindowFinder::X11TopmostWindowFinder() : toplevel_(None) { |
| } |
| @@ -21,7 +35,7 @@ X11TopmostWindowFinder::~X11TopmostWindowFinder() { |
| aura::Window* X11TopmostWindowFinder::FindLocalProcessWindowAt( |
| const gfx::Point& screen_loc, |
| const std::set<aura::Window*>& ignore) { |
| - screen_loc_ = screen_loc; |
| + screen_loc_ = DIPToScreenPoint(screen_loc); |
| ignore_ = ignore; |
| std::vector<aura::Window*> local_process_windows = |
| @@ -41,7 +55,7 @@ aura::Window* X11TopmostWindowFinder::FindLocalProcessWindowAt( |
| } |
| XID X11TopmostWindowFinder::FindWindowAt(const gfx::Point& screen_loc) { |
| - screen_loc_ = screen_loc; |
| + screen_loc_ = DIPToScreenPoint(screen_loc); |
|
sadrul
2015/03/17 15:56:06
From some of the callsites, the |screen_loc| looks
stapelberg
2015/03/19 08:25:44
You’re right. Reverted that part of the change.
|
| ui::EnumerateTopLevelWindows(this); |
| return toplevel_; |
| } |