1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ash/wm/coordinate_conversion.h" 6 7 #include "ash/display/display_controller.h" 8 #include "ash/shell.h" 9 #include "ui/aura/client/screen_position_client.h" 10 #include "ui/gfx/display.h" 11 #include "ui/gfx/point.h" 12 #include "ui/gfx/rect.h" 13 #include "ui/gfx/screen.h" 14 15 namespace ash { 16 namespace wm { 17 18 aura::Window* GetRootWindowAt(const gfx::Point& point) { 19 const gfx::Display& display = 20 Shell::GetScreen()->GetDisplayNearestPoint(point); 21 DCHECK(display.is_valid()); 22 // TODO(yusukes): Move coordinate_conversion.cc and .h to ui/aura/ once 23 // GetRootWindowForDisplayId() is moved to aura::Env. 24 return Shell::GetInstance()->display_controller()-> 25 GetRootWindowForDisplayId(display.id()); 26 } 27 28 aura::Window* GetRootWindowMatching(const gfx::Rect& rect) { 29 const gfx::Display& display = Shell::GetScreen()->GetDisplayMatching(rect); 30 return Shell::GetInstance()->display_controller()-> 31 GetRootWindowForDisplayId(display.id()); 32 } 33 34 void ConvertPointToScreen(const aura::Window* window, gfx::Point* point) { 35 CHECK(aura::client::GetScreenPositionClient(window->GetRootWindow())); 36 aura::client::GetScreenPositionClient(window->GetRootWindow())-> 37 ConvertPointToScreen(window, point); 38 } 39 40 void ConvertPointFromScreen(const aura::Window* window, 41 gfx::Point* point_in_screen) { 42 aura::client::GetScreenPositionClient(window->GetRootWindow())-> 43 ConvertPointFromScreen(window, point_in_screen); 44 } 45 46 } // namespace wm 47 } // namespace ash 48