Chromium Code Reviews| 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 "ui/aura/window_event_dispatcher.h" | 5 #include "ui/aura/window_event_dispatcher.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "ui/aura/client/capture_client.h" | 11 #include "ui/aura/client/capture_client.h" |
| 12 #include "ui/aura/client/cursor_client.h" | 12 #include "ui/aura/client/cursor_client.h" |
| 13 #include "ui/aura/client/event_client.h" | 13 #include "ui/aura/client/event_client.h" |
| 14 #include "ui/aura/client/focus_client.h" | 14 #include "ui/aura/client/focus_client.h" |
| 15 #include "ui/aura/client/screen_position_client.h" | 15 #include "ui/aura/client/screen_position_client.h" |
| 16 #include "ui/aura/env.h" | 16 #include "ui/aura/env.h" |
| 17 #include "ui/aura/window.h" | 17 #include "ui/aura/window.h" |
| 18 #include "ui/aura/window_delegate.h" | 18 #include "ui/aura/window_delegate.h" |
| 19 #include "ui/aura/window_targeter.h" | 19 #include "ui/aura/window_targeter.h" |
| 20 #include "ui/aura/window_tracker.h" | 20 #include "ui/aura/window_tracker.h" |
| 21 #include "ui/aura/window_tree_host.h" | 21 #include "ui/aura/window_tree_host.h" |
| 22 #include "ui/base/hit_test.h" | 22 #include "ui/base/hit_test.h" |
| 23 #include "ui/compositor/dip_util.h" | 23 #include "ui/compositor/dip_util.h" |
| 24 #include "ui/events/event.h" | 24 #include "ui/events/event.h" |
| 25 #include "ui/events/event_constants.h" | |
|
tdresser
2014/08/13 19:57:58
Is this necessary?
lanwei
2014/08/14 00:38:46
No, forgot to delete it.
Done.
| |
| 25 #include "ui/events/gestures/gesture_recognizer.h" | 26 #include "ui/events/gestures/gesture_recognizer.h" |
| 26 #include "ui/events/gestures/gesture_types.h" | 27 #include "ui/events/gestures/gesture_types.h" |
| 27 | 28 |
| 28 typedef ui::EventDispatchDetails DispatchDetails; | 29 typedef ui::EventDispatchDetails DispatchDetails; |
| 29 | 30 |
| 30 namespace aura { | 31 namespace aura { |
| 31 | 32 |
| 32 namespace { | 33 namespace { |
| 33 | 34 |
| 34 // Returns true if |target| has a non-client (frame) component at |location|, | 35 // Returns true if |target| has a non-client (frame) component at |location|, |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 DispatchDetails details = | 134 DispatchDetails details = |
| 134 DispatchEvent(focused_window ? focused_window : window(), &event); | 135 DispatchEvent(focused_window ? focused_window : window(), &event); |
| 135 if (details.dispatcher_destroyed) | 136 if (details.dispatcher_destroyed) |
| 136 return; | 137 return; |
| 137 } | 138 } |
| 138 | 139 |
| 139 void WindowEventDispatcher::DispatchGestureEvent(ui::GestureEvent* event) { | 140 void WindowEventDispatcher::DispatchGestureEvent(ui::GestureEvent* event) { |
| 140 DispatchDetails details = DispatchHeldEvents(); | 141 DispatchDetails details = DispatchHeldEvents(); |
| 141 if (details.dispatcher_destroyed) | 142 if (details.dispatcher_destroyed) |
| 142 return; | 143 return; |
| 143 | |
| 144 Window* target = GetGestureTarget(event); | 144 Window* target = GetGestureTarget(event); |
| 145 if (target) { | 145 if (target) { |
| 146 event->ConvertLocationToTarget(window(), target); | 146 event->ConvertLocationToTarget(window(), target); |
| 147 DispatchDetails details = DispatchEvent(target, event); | 147 DispatchDetails details = DispatchEvent(target, event); |
| 148 if (details.dispatcher_destroyed) | 148 if (details.dispatcher_destroyed) |
| 149 return; | 149 return; |
| 150 } | 150 } |
| 151 } | 151 } |
| 152 | 152 |
| 153 DispatchDetails WindowEventDispatcher::DispatchMouseExitAtPoint( | 153 DispatchDetails WindowEventDispatcher::DispatchMouseExitAtPoint( |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 523 //////////////////////////////////////////////////////////////////////////////// | 523 //////////////////////////////////////////////////////////////////////////////// |
| 524 // WindowEventDispatcher, ui::GestureEventHelper implementation: | 524 // WindowEventDispatcher, ui::GestureEventHelper implementation: |
| 525 | 525 |
| 526 bool WindowEventDispatcher::CanDispatchToConsumer( | 526 bool WindowEventDispatcher::CanDispatchToConsumer( |
| 527 ui::GestureConsumer* consumer) { | 527 ui::GestureConsumer* consumer) { |
| 528 Window* consumer_window = ConsumerToWindow(consumer); | 528 Window* consumer_window = ConsumerToWindow(consumer); |
| 529 return (consumer_window && consumer_window->GetRootWindow() == window()); | 529 return (consumer_window && consumer_window->GetRootWindow() == window()); |
| 530 } | 530 } |
| 531 | 531 |
| 532 void WindowEventDispatcher::DispatchCancelTouchEvent(ui::TouchEvent* event) { | 532 void WindowEventDispatcher::DispatchCancelTouchEvent(ui::TouchEvent* event) { |
| 533 event->UpdateForRootTransform(host_->GetRootTransform()); | |
|
tdresser
2014/08/13 19:57:58
Add a comment indicating why this is here.
lanwei
2014/08/14 00:38:46
Done.
| |
| 533 DispatchDetails details = OnEventFromSource(event); | 534 DispatchDetails details = OnEventFromSource(event); |
| 534 if (details.dispatcher_destroyed) | 535 if (details.dispatcher_destroyed) |
| 535 return; | 536 return; |
| 536 } | 537 } |
| 537 | 538 |
| 538 //////////////////////////////////////////////////////////////////////////////// | 539 //////////////////////////////////////////////////////////////////////////////// |
| 539 // WindowEventDispatcher, WindowObserver implementation: | 540 // WindowEventDispatcher, WindowObserver implementation: |
| 540 | 541 |
| 541 void WindowEventDispatcher::OnWindowDestroying(Window* window) { | 542 void WindowEventDispatcher::OnWindowDestroying(Window* window) { |
| 542 if (!host_->window()->Contains(window)) | 543 if (!host_->window()->Contains(window)) |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 898 if (!ui::GestureRecognizer::Get()->ProcessTouchEventPreDispatch(orig_event, | 899 if (!ui::GestureRecognizer::Get()->ProcessTouchEventPreDispatch(orig_event, |
| 899 target)) { | 900 target)) { |
| 900 event->SetHandled(); | 901 event->SetHandled(); |
| 901 } | 902 } |
| 902 } | 903 } |
| 903 | 904 |
| 904 PreDispatchLocatedEvent(target, event); | 905 PreDispatchLocatedEvent(target, event); |
| 905 } | 906 } |
| 906 | 907 |
| 907 } // namespace aura | 908 } // namespace aura |
| OLD | NEW |