| 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/mus/move_event_handler.h" | 5 #include "ash/mus/move_event_handler.h" | 
| 6 | 6 | 
| 7 #include "ash/mus/bridge/workspace_event_handler_mus.h" | 7 #include "ash/mus/bridge/workspace_event_handler_mus.h" | 
| 8 #include "ash/wm_window.h" | 8 #include "ash/wm_window.h" | 
| 9 #include "services/ui/public/interfaces/cursor/cursor.mojom.h" | 9 #include "services/ui/public/interfaces/cursor/cursor.mojom.h" | 
| 10 #include "ui/aura/mus/window_manager_delegate.h" | 10 #include "ui/aura/mus/window_manager_delegate.h" | 
| 11 #include "ui/aura/window.h" | 11 #include "ui/aura/window.h" | 
| 12 #include "ui/base/class_property.h" | 12 #include "ui/base/class_property.h" | 
|  | 13 #include "ui/base/cursor/cursor.h" | 
| 13 #include "ui/base/hit_test.h" | 14 #include "ui/base/hit_test.h" | 
| 14 #include "ui/events/event.h" | 15 #include "ui/events/event.h" | 
| 15 | 16 | 
| 16 DECLARE_UI_CLASS_PROPERTY_TYPE(ash::mus::MoveEventHandler*); | 17 DECLARE_UI_CLASS_PROPERTY_TYPE(ash::mus::MoveEventHandler*); | 
| 17 | 18 | 
| 18 namespace { | 19 namespace { | 
| 19 | 20 | 
| 20 // Key used for storing identifier sent to clients for windows. | 21 // Key used for storing identifier sent to clients for windows. | 
| 21 DEFINE_UI_CLASS_PROPERTY_KEY(ash::mus::MoveEventHandler*, | 22 DEFINE_UI_CLASS_PROPERTY_KEY(ash::mus::MoveEventHandler*, | 
| 22                              kWmMoveEventHandler, | 23                              kWmMoveEventHandler, | 
| 23                              nullptr); | 24                              nullptr); | 
| 24 | 25 | 
| 25 }  // namespace | 26 }  // namespace | 
| 26 | 27 | 
| 27 namespace ash { | 28 namespace ash { | 
| 28 namespace mus { | 29 namespace mus { | 
| 29 namespace { | 30 namespace { | 
| 30 | 31 | 
| 31 ui::mojom::CursorType CursorForWindowComponent(int window_component) { | 32 ui::CursorType CursorForWindowComponent(int window_component) { | 
| 32   switch (window_component) { | 33   switch (window_component) { | 
| 33     case HTBOTTOM: | 34     case HTBOTTOM: | 
| 34       return ui::mojom::CursorType::kSouthResize; | 35       return ui::CursorType::kSouthResize; | 
| 35     case HTBOTTOMLEFT: | 36     case HTBOTTOMLEFT: | 
| 36       return ui::mojom::CursorType::kSouthWestResize; | 37       return ui::CursorType::kSouthWestResize; | 
| 37     case HTBOTTOMRIGHT: | 38     case HTBOTTOMRIGHT: | 
| 38       return ui::mojom::CursorType::kSouthEastResize; | 39       return ui::CursorType::kSouthEastResize; | 
| 39     case HTLEFT: | 40     case HTLEFT: | 
| 40       return ui::mojom::CursorType::kWestResize; | 41       return ui::CursorType::kWestResize; | 
| 41     case HTRIGHT: | 42     case HTRIGHT: | 
| 42       return ui::mojom::CursorType::kEastResize; | 43       return ui::CursorType::kEastResize; | 
| 43     case HTTOP: | 44     case HTTOP: | 
| 44       return ui::mojom::CursorType::kNorthResize; | 45       return ui::CursorType::kNorthResize; | 
| 45     case HTTOPLEFT: | 46     case HTTOPLEFT: | 
| 46       return ui::mojom::CursorType::kNorthWestResize; | 47       return ui::CursorType::kNorthWestResize; | 
| 47     case HTTOPRIGHT: | 48     case HTTOPRIGHT: | 
| 48       return ui::mojom::CursorType::kNorthEastResize; | 49       return ui::CursorType::kNorthEastResize; | 
| 49     default: | 50     default: | 
| 50       return ui::mojom::CursorType::kNull; | 51       return ui::CursorType::kNull; | 
| 51   } | 52   } | 
| 52 } | 53 } | 
| 53 | 54 | 
| 54 void OnMoveLoopCompleted(const base::Callback<void(bool success)>& end_closure, | 55 void OnMoveLoopCompleted(const base::Callback<void(bool success)>& end_closure, | 
| 55                          wm::WmToplevelWindowEventHandler::DragResult result) { | 56                          wm::WmToplevelWindowEventHandler::DragResult result) { | 
| 56   end_closure.Run(result == | 57   end_closure.Run(result == | 
| 57                   wm::WmToplevelWindowEventHandler::DragResult::SUCCESS); | 58                   wm::WmToplevelWindowEventHandler::DragResult::SUCCESS); | 
| 58 } | 59 } | 
| 59 | 60 | 
| 60 }  // namespace | 61 }  // namespace | 
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 115 } | 116 } | 
| 116 | 117 | 
| 117 void MoveEventHandler::OnMouseEvent(ui::MouseEvent* event) { | 118 void MoveEventHandler::OnMouseEvent(ui::MouseEvent* event) { | 
| 118   toplevel_window_event_handler_.OnMouseEvent(event, wm_window_); | 119   toplevel_window_event_handler_.OnMouseEvent(event, wm_window_); | 
| 119   if (!toplevel_window_event_handler_.is_drag_in_progress() && | 120   if (!toplevel_window_event_handler_.is_drag_in_progress() && | 
| 120       (event->type() == ui::ET_POINTER_MOVED || | 121       (event->type() == ui::ET_POINTER_MOVED || | 
| 121        event->type() == ui::ET_MOUSE_MOVED)) { | 122        event->type() == ui::ET_MOUSE_MOVED)) { | 
| 122     const int hit_test_location = | 123     const int hit_test_location = | 
| 123         wm_window_->GetNonClientComponent(event->location()); | 124         wm_window_->GetNonClientComponent(event->location()); | 
| 124     window_manager_client_->SetNonClientCursor( | 125     window_manager_client_->SetNonClientCursor( | 
| 125         wm_window_->aura_window(), CursorForWindowComponent(hit_test_location)); | 126         wm_window_->aura_window(), | 
|  | 127         ui::CursorData(CursorForWindowComponent(hit_test_location))); | 
| 126   } | 128   } | 
| 127 | 129 | 
| 128   WorkspaceEventHandlerMus* workspace_event_handler = | 130   WorkspaceEventHandlerMus* workspace_event_handler = | 
| 129       GetWorkspaceEventHandlerMus(); | 131       GetWorkspaceEventHandlerMus(); | 
| 130   if (workspace_event_handler) | 132   if (workspace_event_handler) | 
| 131     workspace_event_handler->OnMouseEvent(event, wm_window_); | 133     workspace_event_handler->OnMouseEvent(event, wm_window_); | 
| 132 } | 134 } | 
| 133 | 135 | 
| 134 void MoveEventHandler::OnGestureEvent(ui::GestureEvent* event) { | 136 void MoveEventHandler::OnGestureEvent(ui::GestureEvent* event) { | 
| 135   toplevel_window_event_handler_.OnGestureEvent(event, wm_window_); | 137   toplevel_window_event_handler_.OnGestureEvent(event, wm_window_); | 
| 136 | 138 | 
| 137   WorkspaceEventHandlerMus* workspace_event_handler = | 139   WorkspaceEventHandlerMus* workspace_event_handler = | 
| 138       GetWorkspaceEventHandlerMus(); | 140       GetWorkspaceEventHandlerMus(); | 
| 139   if (workspace_event_handler) | 141   if (workspace_event_handler) | 
| 140     workspace_event_handler->OnGestureEvent(event, wm_window_); | 142     workspace_event_handler->OnGestureEvent(event, wm_window_); | 
| 141 } | 143 } | 
| 142 | 144 | 
| 143 void MoveEventHandler::OnCancelMode(ui::CancelModeEvent* event) { | 145 void MoveEventHandler::OnCancelMode(ui::CancelModeEvent* event) { | 
| 144   toplevel_window_event_handler_.RevertDrag(); | 146   toplevel_window_event_handler_.RevertDrag(); | 
| 145 } | 147 } | 
| 146 | 148 | 
| 147 void MoveEventHandler::OnWindowDestroying(aura::Window* window) { | 149 void MoveEventHandler::OnWindowDestroying(aura::Window* window) { | 
| 148   DCHECK_EQ(wm_window_->aura_window(), window); | 150   DCHECK_EQ(wm_window_->aura_window(), window); | 
| 149   Detach(); | 151   Detach(); | 
| 150 } | 152 } | 
| 151 | 153 | 
| 152 }  // namespace mus | 154 }  // namespace mus | 
| 153 }  // namespace ash | 155 }  // namespace ash | 
| OLD | NEW | 
|---|