| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/display/extended_mouse_warp_controller.h" | 5 #include "ash/display/extended_mouse_warp_controller.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "ash/display/display_util.h" | 9 #include "ash/display/display_util.h" |
| 10 #include "ash/display/shared_display_edge_indicator.h" | 10 #include "ash/display/shared_display_edge_indicator.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 const gfx::Rect& b_indicator_bounds) | 70 const gfx::Rect& b_indicator_bounds) |
| 71 : a_display_id_(a_display_id), | 71 : a_display_id_(a_display_id), |
| 72 b_display_id_(b_display_id), | 72 b_display_id_(b_display_id), |
| 73 a_indicator_bounds_(a_indicator_bounds), | 73 a_indicator_bounds_(a_indicator_bounds), |
| 74 b_indicator_bounds_(b_indicator_bounds), | 74 b_indicator_bounds_(b_indicator_bounds), |
| 75 shared_display_edge_indicator_(nullptr) { | 75 shared_display_edge_indicator_(nullptr) { |
| 76 // Initialize edge bounds from indicator bounds. | 76 // Initialize edge bounds from indicator bounds. |
| 77 aura::Window* a_window = GetRootWindowForDisplayId(a_display_id); | 77 aura::Window* a_window = GetRootWindowForDisplayId(a_display_id); |
| 78 aura::Window* b_window = GetRootWindowForDisplayId(b_display_id); | 78 aura::Window* b_window = GetRootWindowForDisplayId(b_display_id); |
| 79 | 79 |
| 80 AshWindowTreeHost* a_ash_host = GetRootWindowController(a_window)->ash_host(); | 80 AshWindowTreeHost* a_ash_host = |
| 81 AshWindowTreeHost* b_ash_host = GetRootWindowController(b_window)->ash_host(); | 81 RootWindowController::ForWindow(a_window)->ash_host(); |
| 82 AshWindowTreeHost* b_ash_host = |
| 83 RootWindowController::ForWindow(b_window)->ash_host(); |
| 82 | 84 |
| 83 a_edge_bounds_in_native_ = | 85 a_edge_bounds_in_native_ = |
| 84 GetNativeEdgeBounds(a_ash_host, a_indicator_bounds); | 86 GetNativeEdgeBounds(a_ash_host, a_indicator_bounds); |
| 85 b_edge_bounds_in_native_ = | 87 b_edge_bounds_in_native_ = |
| 86 GetNativeEdgeBounds(b_ash_host, b_indicator_bounds); | 88 GetNativeEdgeBounds(b_ash_host, b_indicator_bounds); |
| 87 } | 89 } |
| 88 | 90 |
| 89 ExtendedMouseWarpController::WarpRegion::~WarpRegion() {} | 91 ExtendedMouseWarpController::WarpRegion::~WarpRegion() {} |
| 90 | 92 |
| 91 const gfx::Rect& | 93 const gfx::Rect& |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 for (const std::unique_ptr<WarpRegion>& warp : warp_regions_) { | 184 for (const std::unique_ptr<WarpRegion>& warp : warp_regions_) { |
| 183 bool in_a_edge = warp->a_edge_bounds_in_native_.Contains(point_in_native); | 185 bool in_a_edge = warp->a_edge_bounds_in_native_.Contains(point_in_native); |
| 184 bool in_b_edge = warp->b_edge_bounds_in_native_.Contains(point_in_native); | 186 bool in_b_edge = warp->b_edge_bounds_in_native_.Contains(point_in_native); |
| 185 if (!in_a_edge && !in_b_edge) | 187 if (!in_a_edge && !in_b_edge) |
| 186 continue; | 188 continue; |
| 187 | 189 |
| 188 // The mouse must move. | 190 // The mouse must move. |
| 189 aura::Window* dst_window = GetRootWindowForDisplayId( | 191 aura::Window* dst_window = GetRootWindowForDisplayId( |
| 190 in_a_edge ? warp->b_display_id_ : warp->a_display_id_); | 192 in_a_edge ? warp->b_display_id_ : warp->a_display_id_); |
| 191 AshWindowTreeHost* target_ash_host = | 193 AshWindowTreeHost* target_ash_host = |
| 192 GetRootWindowController(dst_window)->ash_host(); | 194 RootWindowController::ForWindow(dst_window)->ash_host(); |
| 193 | 195 |
| 194 MoveCursorTo(target_ash_host, point_in_screen, update_mouse_location_now); | 196 MoveCursorTo(target_ash_host, point_in_screen, update_mouse_location_now); |
| 195 return true; | 197 return true; |
| 196 } | 198 } |
| 197 | 199 |
| 198 return false; | 200 return false; |
| 199 } | 201 } |
| 200 | 202 |
| 201 std::unique_ptr<ExtendedMouseWarpController::WarpRegion> | 203 std::unique_ptr<ExtendedMouseWarpController::WarpRegion> |
| 202 ExtendedMouseWarpController::CreateWarpRegion(const display::Display& a, | 204 ExtendedMouseWarpController::CreateWarpRegion(const display::Display& a, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 215 if (drag_source_id == a.id()) | 217 if (drag_source_id == a.id()) |
| 216 AdjustSourceEdgeBounds(a.bounds(), snap_barrier, &a_edge); | 218 AdjustSourceEdgeBounds(a.bounds(), snap_barrier, &a_edge); |
| 217 else if (drag_source_id == b.id()) | 219 else if (drag_source_id == b.id()) |
| 218 AdjustSourceEdgeBounds(b.bounds(), snap_barrier, &b_edge); | 220 AdjustSourceEdgeBounds(b.bounds(), snap_barrier, &b_edge); |
| 219 } | 221 } |
| 220 | 222 |
| 221 return base::MakeUnique<WarpRegion>(a.id(), b.id(), a_edge, b_edge); | 223 return base::MakeUnique<WarpRegion>(a.id(), b.id(), a_edge, b_edge); |
| 222 } | 224 } |
| 223 | 225 |
| 224 } // namespace ash | 226 } // namespace ash |
| OLD | NEW |