| 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 "ash/display/display_layout_store.h" | 7 #include "ash/display/display_layout_store.h" |
| 8 #include "ash/display/display_manager.h" | 8 #include "ash/display/display_manager.h" |
| 9 #include "ash/display/mouse_cursor_event_filter.h" | 9 #include "ash/display/mouse_cursor_event_filter.h" |
| 10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 54 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 55 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), | 55 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), |
| 56 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 56 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 57 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 57 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 58 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), | 58 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), |
| 59 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 59 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 60 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), | 60 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), |
| 61 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 61 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 62 | 62 |
| 63 // Move 2nd display downwards a bit. | 63 // Move 2nd display downwards a bit. |
| 64 layout->placement_list[0]->offset = 5; | 64 layout->placement_list[0].offset = 5; |
| 65 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 65 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 66 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 66 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 67 // This is same as before because the 2nd display's y is above | 67 // This is same as before because the 2nd display's y is above |
| 68 // the indicator's x. | 68 // the indicator's x. |
| 69 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 69 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 70 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), | 70 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), |
| 71 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 71 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 72 EXPECT_EQ(gfx::Rect(360, 5, 1, 355), | 72 EXPECT_EQ(gfx::Rect(360, 5, 1, 355), |
| 73 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 73 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 74 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 74 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 75 EXPECT_EQ(gfx::Rect(360, 21, 1, 339), | 75 EXPECT_EQ(gfx::Rect(360, 21, 1, 339), |
| 76 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 76 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 77 EXPECT_EQ(gfx::Rect(359, 5, 1, 355), | 77 EXPECT_EQ(gfx::Rect(359, 5, 1, 355), |
| 78 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 78 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 79 | 79 |
| 80 // Move it down further so that the shared edge is shorter than | 80 // Move it down further so that the shared edge is shorter than |
| 81 // minimum hole size (160). | 81 // minimum hole size (160). |
| 82 layout->placement_list[0]->offset = 200; | 82 layout->placement_list[0].offset = 200; |
| 83 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 83 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 84 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 84 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 85 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 85 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 86 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), | 86 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), |
| 87 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 87 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 88 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), | 88 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), |
| 89 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 89 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 90 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 90 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 91 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 91 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 92 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), | 92 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), |
| 93 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 93 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 94 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), | 94 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), |
| 95 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 95 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 96 | 96 |
| 97 // Now move 2nd display upwards | 97 // Now move 2nd display upwards |
| 98 layout->placement_list[0]->offset = -5; | 98 layout->placement_list[0].offset = -5; |
| 99 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 99 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 100 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 100 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 101 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 101 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 102 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), | 102 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), |
| 103 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 103 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 104 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), | 104 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), |
| 105 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 105 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 106 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 106 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 107 // 16 px are reserved on 2nd display from top, so y must be | 107 // 16 px are reserved on 2nd display from top, so y must be |
| 108 // (16 - 5) = 11 | 108 // (16 - 5) = 11 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 132 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 132 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 133 EXPECT_EQ(gfx::Rect(-1, 0, 1, 360), | 133 EXPECT_EQ(gfx::Rect(-1, 0, 1, 360), |
| 134 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 134 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 135 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 135 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 136 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 136 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 137 EXPECT_EQ(gfx::Rect(-1, 16, 1, 344), | 137 EXPECT_EQ(gfx::Rect(-1, 16, 1, 344), |
| 138 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 138 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 139 EXPECT_EQ(gfx::Rect(0, 0, 1, 360), | 139 EXPECT_EQ(gfx::Rect(0, 0, 1, 360), |
| 140 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 140 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 141 | 141 |
| 142 layout->placement_list[0]->offset = 250; | 142 layout->placement_list[0].offset = 250; |
| 143 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 143 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 144 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 144 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 145 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 145 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 146 EXPECT_EQ(gfx::Rect(0, 250, 1, 110), | 146 EXPECT_EQ(gfx::Rect(0, 250, 1, 110), |
| 147 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 147 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 148 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), | 148 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), |
| 149 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 149 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 150 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 150 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 151 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 151 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 152 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), | 152 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), |
| (...skipping 20 matching lines...) Expand all Loading... |
| 173 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 173 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 174 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), | 174 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), |
| 175 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 175 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 176 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 176 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 177 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 177 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 178 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), | 178 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), |
| 179 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 179 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 180 EXPECT_EQ(gfx::Rect(0, 0, 360, 1), | 180 EXPECT_EQ(gfx::Rect(0, 0, 360, 1), |
| 181 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 181 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 182 | 182 |
| 183 layout->placement_list[0]->offset = 250; | 183 layout->placement_list[0].offset = 250; |
| 184 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 184 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 185 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 185 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 186 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 186 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 187 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), | 187 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), |
| 188 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 188 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 189 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), | 189 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), |
| 190 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 190 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 191 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 191 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 192 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 192 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 193 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), | 193 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), |
| 194 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 194 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 195 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), | 195 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), |
| 196 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 196 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 197 | 197 |
| 198 layout->placement_list[0]->position = DisplayPlacement::BOTTOM; | 198 layout->placement_list[0].position = DisplayPlacement::BOTTOM; |
| 199 layout->placement_list[0]->offset = 0; | 199 layout->placement_list[0].offset = 0; |
| 200 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); | 200 display_manager->SetLayoutForCurrentDisplays(layout->Copy()); |
| 201 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); | 201 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); |
| 202 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 202 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 203 EXPECT_EQ(gfx::Rect(0, 359, 360, 1), | 203 EXPECT_EQ(gfx::Rect(0, 359, 360, 1), |
| 204 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); | 204 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds()); |
| 205 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), | 205 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), |
| 206 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); | 206 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds()); |
| 207 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); | 207 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); |
| 208 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); | 208 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); |
| 209 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), | 209 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 event_filter()->HideSharedEdgeIndicator(); | 261 event_filter()->HideSharedEdgeIndicator(); |
| 262 }; | 262 }; |
| 263 | 263 |
| 264 UpdateDisplay("360x360,700x700,1000x1000"); | 264 UpdateDisplay("360x360,700x700,1000x1000"); |
| 265 run_test(); | 265 run_test(); |
| 266 | 266 |
| 267 // TODO(oshima): Add test cases with layouts, primary swap. | 267 // TODO(oshima): Add test cases with layouts, primary swap. |
| 268 } | 268 } |
| 269 | 269 |
| 270 } // namespace ash | 270 } // namespace ash |
| OLD | NEW |