OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/services/window_manager/focus_controller.h" | 5 #include "mojo/services/window_manager/focus_controller.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "mojo/services/public/cpp/view_manager/view_tracker.h" | 8 #include "mojo/services/public/cpp/view_manager/view_tracker.h" |
9 #include "mojo/services/window_manager/focus_controller_observer.h" | 9 #include "mojo/services/window_manager/focus_controller_observer.h" |
10 #include "mojo/services/window_manager/focus_rules.h" | 10 #include "mojo/services/window_manager/focus_rules.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 } | 111 } |
112 | 112 |
113 //////////////////////////////////////////////////////////////////////////////// | 113 //////////////////////////////////////////////////////////////////////////////// |
114 // FocusController, ui::EventHandler implementation: | 114 // FocusController, ui::EventHandler implementation: |
115 | 115 |
116 void FocusController::OnKeyEvent(ui::KeyEvent* event) { | 116 void FocusController::OnKeyEvent(ui::KeyEvent* event) { |
117 } | 117 } |
118 | 118 |
119 void FocusController::OnMouseEvent(ui::MouseEvent* event) { | 119 void FocusController::OnMouseEvent(ui::MouseEvent* event) { |
120 if (event->type() == ui::ET_MOUSE_PRESSED && !event->handled()) { | 120 if (event->type() == ui::ET_MOUSE_PRESSED && !event->handled()) { |
121 View* view = mojo::WindowManagerApp::GetViewForViewTarget( | 121 View* view = static_cast<ViewTarget*>(event->target())->view(); |
122 static_cast<ViewTarget*>(event->target())); | |
123 ViewFocusedFromInputEvent(view); | 122 ViewFocusedFromInputEvent(view); |
124 } | 123 } |
125 } | 124 } |
126 | 125 |
127 void FocusController::OnScrollEvent(ui::ScrollEvent* event) { | 126 void FocusController::OnScrollEvent(ui::ScrollEvent* event) { |
128 } | 127 } |
129 | 128 |
130 void FocusController::OnTouchEvent(ui::TouchEvent* event) { | 129 void FocusController::OnTouchEvent(ui::TouchEvent* event) { |
131 } | 130 } |
132 | 131 |
133 void FocusController::OnGestureEvent(ui::GestureEvent* event) { | 132 void FocusController::OnGestureEvent(ui::GestureEvent* event) { |
134 if (event->type() == ui::ET_GESTURE_BEGIN && | 133 if (event->type() == ui::ET_GESTURE_BEGIN && |
135 event->details().touch_points() == 1 && | 134 event->details().touch_points() == 1 && |
136 !event->handled()) { | 135 !event->handled()) { |
137 View* view = mojo::WindowManagerApp::GetViewForViewTarget( | 136 View* view = static_cast<ViewTarget*>(event->target())->view(); |
138 static_cast<ViewTarget*>(event->target())); | |
139 ViewFocusedFromInputEvent(view); | 137 ViewFocusedFromInputEvent(view); |
140 } | 138 } |
141 } | 139 } |
142 | 140 |
143 //////////////////////////////////////////////////////////////////////////////// | 141 //////////////////////////////////////////////////////////////////////////////// |
144 // FocusController, aura::WindowObserver implementation: | 142 // FocusController, aura::WindowObserver implementation: |
145 | 143 |
146 void FocusController::OnViewVisibilityChanged(View* view) { | 144 void FocusController::OnViewVisibilityChanged(View* view) { |
147 bool visible = view->visible(); | 145 bool visible = view->visible(); |
148 if (!visible) | 146 if (!visible) |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 | 292 |
295 void FocusController::ViewFocusedFromInputEvent(View* view) { | 293 void FocusController::ViewFocusedFromInputEvent(View* view) { |
296 // Only focus |window| if it or any of its parents can be focused. Otherwise | 294 // Only focus |window| if it or any of its parents can be focused. Otherwise |
297 // FocusWindow() will focus the topmost window, which may not be the | 295 // FocusWindow() will focus the topmost window, which may not be the |
298 // currently focused one. | 296 // currently focused one. |
299 if (rules_->CanFocusView(GetToplevelView(view))) | 297 if (rules_->CanFocusView(GetToplevelView(view))) |
300 FocusView(view); | 298 FocusView(view); |
301 } | 299 } |
302 | 300 |
303 } // namespace mojo | 301 } // namespace mojo |
OLD | NEW |