| Index: ash/display/screen_position_controller.cc
|
| diff --git a/ash/display/screen_position_controller.cc b/ash/display/screen_position_controller.cc
|
| index 6ab4b5489e3adee83f537369326e88a26ea45d6b..860b53e038f32bb907f7f758aacd12a238897d65 100644
|
| --- a/ash/display/screen_position_controller.cc
|
| +++ b/ash/display/screen_position_controller.cc
|
| @@ -72,7 +72,7 @@ std::pair<aura::Window*, gfx::Point> GetRootWindowRelativeToWindow(
|
| gfx::Point location_in_root(location);
|
| aura::Window::ConvertPointToTarget(window, root_window, &location_in_root);
|
|
|
| -#if defined(USE_X11)
|
| +#if defined(USE_X11) || defined(USE_OZONE)
|
| if (!root_window->ContainsPointInRoot(location_in_root)) {
|
| // This conversion is necessary to deal with X's passive input
|
| // grab while dragging window. For example, if we have two
|
| @@ -89,6 +89,10 @@ std::pair<aura::Window*, gfx::Point> GetRootWindowRelativeToWindow(
|
| // layout in Ash). We need to figure out that (0, 1123) in the
|
| // primary root window's coordinates is actually (0, 123) in the
|
| // extended root window's coordinates.
|
| + //
|
| + // For now Ozone works in a similar manner as X11. Transitioning from one
|
| + // display's coordinate system to anothers may cause events in the
|
| + // primary's coordinate system which fall in the extended display.
|
|
|
| gfx::Point location_in_native(location_in_root);
|
| root_window->GetHost()->ConvertPointToNativeScreen(&location_in_native);
|
| @@ -107,6 +111,7 @@ std::pair<aura::Window*, gfx::Point> GetRootWindowRelativeToWindow(
|
| }
|
| #else
|
| // TODO(yusukes): Support non-X11 platforms if necessary.
|
| + NOTIMPLEMENTED();
|
| #endif
|
|
|
| return std::make_pair(root_window, location_in_root);
|
|
|