OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "mash/simple_wm/move_event_handler.h" | 5 #include "mash/simple_wm/move_event_handler.h" |
6 | 6 |
7 #include "mash/simple_wm/move_loop.h" | 7 #include "mash/simple_wm/move_loop.h" |
8 #include "services/ui/public/interfaces/cursor/cursor.mojom.h" | 8 #include "services/ui/public/interfaces/cursor/cursor.mojom.h" |
9 #include "ui/aura/mus/window_port_mus.h" | 9 #include "ui/aura/mus/window_port_mus.h" |
10 #include "ui/aura/window.h" | 10 #include "ui/aura/window.h" |
11 #include "ui/aura/window_delegate.h" | 11 #include "ui/aura/window_delegate.h" |
| 12 #include "ui/base/cursor/cursor.h" |
12 #include "ui/base/hit_test.h" | 13 #include "ui/base/hit_test.h" |
13 #include "ui/events/event.h" | 14 #include "ui/events/event.h" |
14 | 15 |
15 namespace simple_wm { | 16 namespace simple_wm { |
16 namespace { | 17 namespace { |
17 | 18 |
18 ui::mojom::CursorType CursorForWindowComponent(int window_component) { | 19 ui::CursorType CursorForWindowComponent(int window_component) { |
19 switch (window_component) { | 20 switch (window_component) { |
20 case HTBOTTOM: | 21 case HTBOTTOM: |
21 return ui::mojom::CursorType::kSouthResize; | 22 return ui::CursorType::kSouthResize; |
22 case HTBOTTOMLEFT: | 23 case HTBOTTOMLEFT: |
23 return ui::mojom::CursorType::kSouthWestResize; | 24 return ui::CursorType::kSouthWestResize; |
24 case HTBOTTOMRIGHT: | 25 case HTBOTTOMRIGHT: |
25 return ui::mojom::CursorType::kSouthEastResize; | 26 return ui::CursorType::kSouthEastResize; |
26 case HTLEFT: | 27 case HTLEFT: |
27 return ui::mojom::CursorType::kWestResize; | 28 return ui::CursorType::kWestResize; |
28 case HTRIGHT: | 29 case HTRIGHT: |
29 return ui::mojom::CursorType::kEastResize; | 30 return ui::CursorType::kEastResize; |
30 case HTTOP: | 31 case HTTOP: |
31 return ui::mojom::CursorType::kNorthResize; | 32 return ui::CursorType::kNorthResize; |
32 case HTTOPLEFT: | 33 case HTTOPLEFT: |
33 return ui::mojom::CursorType::kNorthWestResize; | 34 return ui::CursorType::kNorthWestResize; |
34 case HTTOPRIGHT: | 35 case HTTOPRIGHT: |
35 return ui::mojom::CursorType::kNorthEastResize; | 36 return ui::CursorType::kNorthEastResize; |
36 default: | 37 default: |
37 return ui::mojom::CursorType::kNull; | 38 return ui::CursorType::kNull; |
38 } | 39 } |
39 } | 40 } |
40 | 41 |
41 } // namespace | 42 } // namespace |
42 | 43 |
43 MoveEventHandler::MoveEventHandler(aura::Window* window) | 44 MoveEventHandler::MoveEventHandler(aura::Window* window) |
44 : window_(window) { | 45 : window_(window) { |
45 window_->AddObserver(this); | 46 window_->AddObserver(this); |
46 window_->AddPreTargetHandler(this); | 47 window_->AddPreTargetHandler(this); |
47 } | 48 } |
(...skipping 23 matching lines...) Expand all Loading... |
71 if (move_loop_) { | 72 if (move_loop_) { |
72 if (move_loop_->Move(*pointer_event.get()) == MoveLoop::DONE) | 73 if (move_loop_->Move(*pointer_event.get()) == MoveLoop::DONE) |
73 move_loop_.reset(); | 74 move_loop_.reset(); |
74 } else if (pointer_event->type() == ui::ET_POINTER_DOWN) { | 75 } else if (pointer_event->type() == ui::ET_POINTER_DOWN) { |
75 const int ht_location = | 76 const int ht_location = |
76 GetNonClientComponentForEvent(pointer_event.get()); | 77 GetNonClientComponentForEvent(pointer_event.get()); |
77 if (ht_location != HTNOWHERE) | 78 if (ht_location != HTNOWHERE) |
78 move_loop_ = MoveLoop::Create(window_, ht_location, *pointer_event.get()); | 79 move_loop_ = MoveLoop::Create(window_, ht_location, *pointer_event.get()); |
79 } else if (pointer_event->type() == ui::ET_POINTER_MOVED) { | 80 } else if (pointer_event->type() == ui::ET_POINTER_MOVED) { |
80 const int ht_location = GetNonClientComponentForEvent(pointer_event.get()); | 81 const int ht_location = GetNonClientComponentForEvent(pointer_event.get()); |
81 aura::WindowPortMus::Get(window_)->SetPredefinedCursor( | 82 aura::WindowPortMus::Get(window_)->SetCursor( |
82 CursorForWindowComponent(ht_location)); | 83 ui::CursorData(CursorForWindowComponent(ht_location))); |
83 } | 84 } |
84 if (had_move_loop || move_loop_) | 85 if (had_move_loop || move_loop_) |
85 event->SetHandled(); | 86 event->SetHandled(); |
86 } | 87 } |
87 | 88 |
88 int MoveEventHandler::GetNonClientComponentForEvent( | 89 int MoveEventHandler::GetNonClientComponentForEvent( |
89 const ui::LocatedEvent* event) { | 90 const ui::LocatedEvent* event) { |
90 return window_->delegate()->GetNonClientComponent(event->location()); | 91 return window_->delegate()->GetNonClientComponent(event->location()); |
91 } | 92 } |
92 | 93 |
(...skipping 19 matching lines...) Expand all Loading... |
112 move_loop_.reset(); | 113 move_loop_.reset(); |
113 event->SetHandled(); | 114 event->SetHandled(); |
114 } | 115 } |
115 | 116 |
116 void MoveEventHandler::OnWindowDestroying(aura::Window* window) { | 117 void MoveEventHandler::OnWindowDestroying(aura::Window* window) { |
117 DCHECK_EQ(window_, window); | 118 DCHECK_EQ(window_, window); |
118 Detach(); | 119 Detach(); |
119 } | 120 } |
120 | 121 |
121 } // namespace simple_wm | 122 } // namespace simple_wm |
OLD | NEW |