Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Side by Side Diff: ui/events/event_dispatcher.cc

Issue 240333007: wip: Second crack at implementing the touch exploration mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't extend DisplayController::Observer - TouchExplorationController is owned by the root window (… Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/events/event_dispatcher.h" 5 #include "ui/events/event_dispatcher.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ui/events/event_target.h" 9 #include "ui/events/event_target.h"
10 #include "ui/events/event_targeter.h" 10 #include "ui/events/event_targeter.h"
(...skipping 27 matching lines...) Expand all
38 if (dispatcher_) 38 if (dispatcher_)
39 dispatcher_->OnDispatcherDelegateDestroyed(); 39 dispatcher_->OnDispatcherDelegateDestroyed();
40 } 40 }
41 41
42 Event* EventDispatcherDelegate::current_event() { 42 Event* EventDispatcherDelegate::current_event() {
43 return dispatcher_ ? dispatcher_->current_event() : NULL; 43 return dispatcher_ ? dispatcher_->current_event() : NULL;
44 } 44 }
45 45
46 EventDispatchDetails EventDispatcherDelegate::DispatchEvent(EventTarget* target, 46 EventDispatchDetails EventDispatcherDelegate::DispatchEvent(EventTarget* target,
47 Event* event) { 47 Event* event) {
48 LOG(ERROR) << "EventDispatcherDelegate::DispatchEvent 1"
49 << ", handled=" << event->handled();
Daniel Erat 2014/04/18 00:44:08 delete
48 CHECK(target); 50 CHECK(target);
49 Event::DispatcherApi dispatch_helper(event); 51 Event::DispatcherApi dispatch_helper(event);
50 dispatch_helper.set_phase(EP_PREDISPATCH); 52 dispatch_helper.set_phase(EP_PREDISPATCH);
51 dispatch_helper.set_result(ER_UNHANDLED); 53 dispatch_helper.set_result(ER_UNHANDLED);
52 54
53 EventDispatchDetails details = PreDispatchEvent(target, event); 55 EventDispatchDetails details = PreDispatchEvent(target, event);
56 LOG(ERROR) << "EventDispatcherDelegate::DispatchEvent: 2"
57 << ", handled=" << event->handled()
58 << ", details.dispatcher_destroyed=" << details.dispatcher_destroyed
59 << ", details.target_destroyed=" << details.target_destroyed;
54 if (!event->handled() && 60 if (!event->handled() &&
55 !details.dispatcher_destroyed && 61 !details.dispatcher_destroyed &&
56 !details.target_destroyed) { 62 !details.target_destroyed) {
57 details = DispatchEventToTarget(target, event); 63 details = DispatchEventToTarget(target, event);
58 } 64 }
59 bool target_destroyed_during_dispatch = details.target_destroyed; 65 bool target_destroyed_during_dispatch = details.target_destroyed;
60 if (!details.dispatcher_destroyed) { 66 if (!details.dispatcher_destroyed) {
61 details = PostDispatchEvent(target_destroyed_during_dispatch ? 67 details = PostDispatchEvent(target_destroyed_during_dispatch ?
62 NULL : target, *event); 68 NULL : target, *event);
63 } 69 }
64 70
65 details.target_destroyed |= target_destroyed_during_dispatch; 71 details.target_destroyed |= target_destroyed_during_dispatch;
66 return details; 72 return details;
67 } 73 }
68 74
69 EventDispatchDetails EventDispatcherDelegate::PreDispatchEvent( 75 EventDispatchDetails EventDispatcherDelegate::PreDispatchEvent(
70 EventTarget* target, Event* event) { 76 EventTarget* target, Event* event) {
71 return EventDispatchDetails(); 77 return EventDispatchDetails();
72 } 78 }
73 79
74 EventDispatchDetails EventDispatcherDelegate::PostDispatchEvent( 80 EventDispatchDetails EventDispatcherDelegate::PostDispatchEvent(
75 EventTarget* target, const Event& event) { 81 EventTarget* target, const Event& event) {
76 return EventDispatchDetails(); 82 return EventDispatchDetails();
77 } 83 }
78 84
79 EventDispatchDetails EventDispatcherDelegate::DispatchEventToTarget( 85 EventDispatchDetails EventDispatcherDelegate::DispatchEventToTarget(
80 EventTarget* target, 86 EventTarget* target,
81 Event* event) { 87 Event* event) {
88 LOG(ERROR) << "EventDispatcherDelegate::DispatchEventToTarget";
82 EventDispatcher* old_dispatcher = dispatcher_; 89 EventDispatcher* old_dispatcher = dispatcher_;
83 EventDispatcher dispatcher(this); 90 EventDispatcher dispatcher(this);
84 dispatcher_ = &dispatcher; 91 dispatcher_ = &dispatcher;
85 dispatcher.ProcessEvent(target, event); 92 dispatcher.ProcessEvent(target, event);
86 if (!dispatcher.delegate_destroyed()) 93 if (!dispatcher.delegate_destroyed())
87 dispatcher_ = old_dispatcher; 94 dispatcher_ = old_dispatcher;
88 else if (old_dispatcher) 95 else if (old_dispatcher)
89 old_dispatcher->OnDispatcherDelegateDestroyed(); 96 old_dispatcher->OnDispatcherDelegateDestroyed();
90 97
91 EventDispatchDetails details; 98 EventDispatchDetails details;
(...skipping 14 matching lines...) Expand all
106 EventDispatcher::~EventDispatcher() { 113 EventDispatcher::~EventDispatcher() {
107 } 114 }
108 115
109 void EventDispatcher::OnHandlerDestroyed(EventHandler* handler) { 116 void EventDispatcher::OnHandlerDestroyed(EventHandler* handler) {
110 handler_list_.erase(std::find(handler_list_.begin(), 117 handler_list_.erase(std::find(handler_list_.begin(),
111 handler_list_.end(), 118 handler_list_.end(),
112 handler)); 119 handler));
113 } 120 }
114 121
115 void EventDispatcher::ProcessEvent(EventTarget* target, Event* event) { 122 void EventDispatcher::ProcessEvent(EventTarget* target, Event* event) {
123 LOG(ERROR) << "EventDispatcherDelegate::ProcessEvent";
116 if (!target || !target->CanAcceptEvent(*event)) 124 if (!target || !target->CanAcceptEvent(*event))
117 return; 125 return;
118 126
119 ScopedDispatchHelper dispatch_helper(event); 127 ScopedDispatchHelper dispatch_helper(event);
120 dispatch_helper.set_target(target); 128 dispatch_helper.set_target(target);
121 129
122 handler_list_.clear(); 130 handler_list_.clear();
123 target->GetPreTargetHandlers(&handler_list_); 131 target->GetPreTargetHandlers(&handler_list_);
124 132
125 dispatch_helper.set_phase(EP_PRETARGET); 133 dispatch_helper.set_phase(EP_PRETARGET);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 return; 193 return;
186 } 194 }
187 195
188 base::AutoReset<Event*> event_reset(&current_event_, event); 196 base::AutoReset<Event*> event_reset(&current_event_, event);
189 handler->OnEvent(event); 197 handler->OnEvent(event);
190 if (!delegate_ && event->cancelable()) 198 if (!delegate_ && event->cancelable())
191 event->StopPropagation(); 199 event->StopPropagation();
192 } 200 }
193 201
194 } // namespace ui 202 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698