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

Side by Side Diff: sky/engine/core/frame/NewEventHandler.cpp

Issue 866213004: Switch Sky to pointer events (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: nits Created 5 years, 11 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "sky/engine/config.h" 5 #include "sky/engine/config.h"
6 #include "sky/engine/core/frame/NewEventHandler.h" 6 #include "sky/engine/core/frame/NewEventHandler.h"
7 7
8 #include "sky/engine/core/dom/Document.h" 8 #include "sky/engine/core/dom/Document.h"
9 #include "sky/engine/core/dom/NodeRenderingTraversal.h" 9 #include "sky/engine/core/dom/NodeRenderingTraversal.h"
10 #include "sky/engine/core/dom/TouchList.h" 10 #include "sky/engine/core/dom/TouchList.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 if (event.type == WebInputEvent::PointerUp) 105 if (event.type == WebInputEvent::PointerUp)
106 return handlePointerUpEvent(event); 106 return handlePointerUpEvent(event);
107 if (event.type == WebInputEvent::PointerMove) 107 if (event.type == WebInputEvent::PointerMove)
108 return handlePointerMoveEvent(event); 108 return handlePointerMoveEvent(event);
109 ASSERT(event.type == WebInputEvent::PointerCancel); 109 ASSERT(event.type == WebInputEvent::PointerCancel);
110 return handlePointerCancelEvent(event); 110 return handlePointerCancelEvent(event);
111 } 111 }
112 112
113 bool NewEventHandler::handlePointerDownEvent(const WebPointerEvent& event) 113 bool NewEventHandler::handlePointerDownEvent(const WebPointerEvent& event)
114 { 114 {
115 ASSERT(!m_targetForPointer.contains(event.pointer)); 115 ASSERT(m_targetForPointer.find(event.pointer) == m_targetForPointer.end());
116 HitTestResult hitTestResult = performHitTest(positionForEvent(event)); 116 HitTestResult hitTestResult = performHitTest(positionForEvent(event));
117 RefPtr<Node> target = targetForHitTestResult(hitTestResult); 117 RefPtr<Node> target = targetForHitTestResult(hitTestResult);
118 m_targetForPointer.set(event.pointer, target); 118 m_targetForPointer[event.pointer] = target;
119 bool eventSwallowed = !dispatchPointerEvent(*target, event); 119 bool eventSwallowed = !dispatchPointerEvent(*target, event);
120 // TODO(abarth): Set the target for the pointer to something determined when 120 // TODO(abarth): Set the target for the pointer to something determined when
121 // dispatching the event. 121 // dispatching the event.
122 updateSelectionForPointerDown(hitTestResult, event); 122 updateSelectionForPointerDown(hitTestResult, event);
123 return eventSwallowed; 123 return eventSwallowed;
124 } 124 }
125 125
126 bool NewEventHandler::handlePointerUpEvent(const WebPointerEvent& event) 126 bool NewEventHandler::handlePointerUpEvent(const WebPointerEvent& event)
127 { 127 {
128 RefPtr<Node> target = m_targetForPointer.take(event.pointer); 128 RefPtr<Node> target = m_targetForPointer[event.pointer];
129 if (!target) 129 if (!target)
130 return false; 130 return false;
131 m_targetForPointer.erase(event.pointer);
131 bool eventSwallowed = !dispatchPointerEvent(*target, event); 132 bool eventSwallowed = !dispatchPointerEvent(*target, event);
132 // When the user releases the primary pointer, we need to dispatch a tap 133 // When the user releases the primary pointer, we need to dispatch a tap
133 // event to the common ancestor for where the pointer went down and where 134 // event to the common ancestor for where the pointer went down and where
134 // it came up. 135 // it came up.
135 if (!dispatchClickEvent(*target, event)) 136 if (!dispatchClickEvent(*target, event))
136 eventSwallowed = true; 137 eventSwallowed = true;
137 return eventSwallowed; 138 return eventSwallowed;
138 } 139 }
139 140
140 bool NewEventHandler::handlePointerMoveEvent(const WebPointerEvent& event) 141 bool NewEventHandler::handlePointerMoveEvent(const WebPointerEvent& event)
141 { 142 {
142 RefPtr<Node> target = m_targetForPointer.get(event.pointer); 143 RefPtr<Node> target = m_targetForPointer[event.pointer];
143 return target && dispatchPointerEvent(*target.get(), event); 144 return target && dispatchPointerEvent(*target.get(), event);
144 } 145 }
145 146
146 bool NewEventHandler::handlePointerCancelEvent(const WebPointerEvent& event) 147 bool NewEventHandler::handlePointerCancelEvent(const WebPointerEvent& event)
147 { 148 {
148 RefPtr<Node> target = m_targetForPointer.take(event.pointer); 149 RefPtr<Node> target = m_targetForPointer[event.pointer];
149 return target && dispatchPointerEvent(*target, event); 150 return target && dispatchPointerEvent(*target, event);
150 } 151 }
151 152
152 } 153 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698