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 "services/window_manager/view_targeter.h" | 5 #include "services/window_manager/view_targeter.h" |
6 | 6 |
7 #include "services/window_manager/capture_controller.h" | 7 #include "services/window_manager/capture_controller.h" |
8 #include "services/window_manager/focus_controller.h" | 8 #include "services/window_manager/focus_controller.h" |
9 #include "services/window_manager/view_target.h" | 9 #include "services/window_manager/view_target.h" |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 ui::EventTarget* root, | 35 ui::EventTarget* root, |
36 ui::LocatedEvent* event) { | 36 ui::LocatedEvent* event) { |
37 ViewTarget* view = static_cast<ViewTarget*>(root); | 37 ViewTarget* view = static_cast<ViewTarget*>(root); |
38 if (!view->HasParent()) { | 38 if (!view->HasParent()) { |
39 ViewTarget* target = FindTargetInRootView(view, *event); | 39 ViewTarget* target = FindTargetInRootView(view, *event); |
40 if (target) { | 40 if (target) { |
41 view->ConvertEventToTarget(target, event); | 41 view->ConvertEventToTarget(target, event); |
42 return target; | 42 return target; |
43 } | 43 } |
44 } | 44 } |
45 if (view->view()->shared_properties().count("event-root")) | |
46 return view; | |
47 return EventTargeter::FindTargetForLocatedEvent(view, event); | 45 return EventTargeter::FindTargetForLocatedEvent(view, event); |
48 } | 46 } |
49 | 47 |
50 bool ViewTargeter::SubtreeCanAcceptEvent(ui::EventTarget* target, | 48 bool ViewTargeter::SubtreeCanAcceptEvent(ui::EventTarget* target, |
51 const ui::LocatedEvent& event) const { | 49 const ui::LocatedEvent& event) const { |
52 ViewTarget* view = static_cast<ViewTarget*>(target); | 50 ViewTarget* view = static_cast<ViewTarget*>(target); |
53 | 51 |
54 if (!view->IsVisible()) | 52 if (!view->IsVisible()) |
55 return false; | 53 return false; |
56 | 54 |
57 // TODO(erg): We may need to keep track of the parent on ViewTarget, because | 55 // TODO(erg): We may need to keep track of the parent on ViewTarget, because |
58 // we have a check here about | 56 // we have a check here about |
59 // WindowDelegate::ShouldDescendIntoChildForEventHandling(). | 57 // WindowDelegate::ShouldDescendIntoChildForEventHandling(). |
60 | 58 |
| 59 // TODO(sky): decide if we really want this. If we do, it should be a public |
| 60 // constant and documented. |
| 61 if (view->view()->shared_properties().count("deliver-events-to-parent")) |
| 62 return false; |
| 63 |
61 return true; | 64 return true; |
62 } | 65 } |
63 | 66 |
64 bool ViewTargeter::EventLocationInsideBounds( | 67 bool ViewTargeter::EventLocationInsideBounds( |
65 ui::EventTarget* target, | 68 ui::EventTarget* target, |
66 const ui::LocatedEvent& event) const { | 69 const ui::LocatedEvent& event) const { |
67 ViewTarget* view = static_cast<ViewTarget*>(target); | 70 ViewTarget* view = static_cast<ViewTarget*>(target); |
68 gfx::Point point = event.location(); | 71 gfx::Point point = event.location(); |
69 const ViewTarget* parent = view->GetParent(); | 72 const ViewTarget* parent = view->GetParent(); |
70 if (parent) | 73 if (parent) |
(...skipping 26 matching lines...) Expand all Loading... |
97 return ViewTarget::TargetFromView(capture_view); | 100 return ViewTarget::TargetFromView(capture_view); |
98 } | 101 } |
99 | 102 |
100 // TODO(erg): There's a whole bunch of junk about handling touch events | 103 // TODO(erg): There's a whole bunch of junk about handling touch events |
101 // here. Handle later. | 104 // here. Handle later. |
102 | 105 |
103 return nullptr; | 106 return nullptr; |
104 } | 107 } |
105 | 108 |
106 } // namespace window_manager | 109 } // namespace window_manager |
OLD | NEW |