Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ash / display / mouse_cursor_event_filter.cc
index 14a6913..baa1466 100644 (file)
@@ -152,7 +152,6 @@ void MouseCursorEventFilter::OnDisplaysInitialized() {
   OnDisplayConfigurationChanged();
 }
 
-#if !defined(USE_OZONE)
 void MouseCursorEventFilter::OnDisplayConfigurationChanged() {
   // Extra check for |num_connected_displays()| is for SystemDisplayApiTest
   // that injects MockScreen.
@@ -174,7 +173,6 @@ void MouseCursorEventFilter::OnDisplayConfigurationChanged() {
   else
     UpdateVerticalEdgeBounds();
 }
-#endif
 
 void MouseCursorEventFilter::OnMouseEvent(ui::MouseEvent* event) {
   aura::Window* target = static_cast<aura::Window*>(event->target());
@@ -224,7 +222,6 @@ void MouseCursorEventFilter::MoveCursorTo(aura::Window* root,
   root->GetHost()->MoveCursorToHostLocation(point_in_host);
 }
 
-#if !defined(USE_OZONE)
 bool MouseCursorEventFilter::WarpMouseCursorIfNecessary(ui::MouseEvent* event) {
   if (!event->HasNativeEvent())
     return false;
@@ -232,8 +229,16 @@ bool MouseCursorEventFilter::WarpMouseCursorIfNecessary(ui::MouseEvent* event) {
   gfx::Point point_in_native =
       ui::EventSystemLocationFromNative(event->native_event());
 
-  gfx::Point point_in_screen = event->location();
   aura::Window* target = static_cast<aura::Window*>(event->target());
+#if defined(USE_OZONE)
+  // TODO(dnicoara): crbug.com/415680 Move cursor warping into Ozone once Ozone
+  // has access to the logical display layout.
+  // Native events in Ozone are in the native window coordinate system. We need
+  // to translate them to get the global position.
+  point_in_native.Offset(target->GetHost()->GetBounds().x(),
+                         target->GetHost()->GetBounds().y());
+#endif
+  gfx::Point point_in_screen = event->location();
   ::wm::ConvertPointToScreen(target, &point_in_screen);
 
   return WarpMouseCursorInNativeCoords(point_in_native, point_in_screen);
@@ -263,7 +268,6 @@ bool MouseCursorEventFilter::WarpMouseCursorInNativeCoords(
 
   return true;
 }
-#endif
 
 void MouseCursorEventFilter::UpdateHorizontalEdgeBounds() {
   bool from_primary = Shell::GetPrimaryRootWindow() == drag_source_root_;
@@ -374,7 +378,6 @@ void MouseCursorEventFilter::GetSrcAndDstRootWindows(aura::Window** src_root,
   *dst_root = root_windows[0] == *src_root ? root_windows[1] : root_windows[0];
 }
 
-#if !defined(USE_OZONE)
 bool MouseCursorEventFilter::WarpMouseCursorIfNecessaryForTest(
     aura::Window* target_root,
     const gfx::Point& point_in_screen) {
@@ -383,6 +386,5 @@ bool MouseCursorEventFilter::WarpMouseCursorIfNecessaryForTest(
   target_root->GetHost()->ConvertPointToNativeScreen(&native);
   return WarpMouseCursorInNativeCoords(native, point_in_screen);
 }
-#endif
 
 }  // namespace ash