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

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

Issue 876853005: Add wheel support to sky-scrollable (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Add missing files Created 5 years, 10 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
« no previous file with comments | « sky/engine/core/frame/NewEventHandler.h ('k') | sky/engine/public/platform/WebInputEvent.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/editing/Editor.h" 10 #include "sky/engine/core/editing/Editor.h"
11 #include "sky/engine/core/editing/FrameSelection.h" 11 #include "sky/engine/core/editing/FrameSelection.h"
12 #include "sky/engine/core/editing/htmlediting.h" 12 #include "sky/engine/core/editing/htmlediting.h"
13 #include "sky/engine/core/events/GestureEvent.h" 13 #include "sky/engine/core/events/GestureEvent.h"
14 #include "sky/engine/core/events/KeyboardEvent.h" 14 #include "sky/engine/core/events/KeyboardEvent.h"
15 #include "sky/engine/core/events/PointerEvent.h" 15 #include "sky/engine/core/events/PointerEvent.h"
16 #include "sky/engine/core/events/WheelEvent.h"
16 #include "sky/engine/core/frame/LocalFrame.h" 17 #include "sky/engine/core/frame/LocalFrame.h"
17 #include "sky/engine/core/frame/FrameView.h" 18 #include "sky/engine/core/frame/FrameView.h"
18 #include "sky/engine/core/rendering/RenderObject.h" 19 #include "sky/engine/core/rendering/RenderObject.h"
19 #include "sky/engine/core/rendering/RenderView.h" 20 #include "sky/engine/core/rendering/RenderView.h"
20 #include "sky/engine/platform/KeyboardCodes.h" 21 #include "sky/engine/platform/KeyboardCodes.h"
21 #include "sky/engine/platform/geometry/FloatPoint.h" 22 #include "sky/engine/platform/geometry/FloatPoint.h"
22 #include "sky/engine/public/platform/WebInputEvent.h" 23 #include "sky/engine/public/platform/WebInputEvent.h"
23 24
24 namespace blink { 25 namespace blink {
25 26
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 RefPtr<GestureEvent> gestureEvent = GestureEvent::create(event); 89 RefPtr<GestureEvent> gestureEvent = GestureEvent::create(event);
89 return target.dispatchEvent(gestureEvent.release()); 90 return target.dispatchEvent(gestureEvent.release());
90 } 91 }
91 92
92 bool NewEventHandler::dispatchKeyboardEvent(Node& target, const WebKeyboardEvent & event) 93 bool NewEventHandler::dispatchKeyboardEvent(Node& target, const WebKeyboardEvent & event)
93 { 94 {
94 RefPtr<KeyboardEvent> keyboardEvent = KeyboardEvent::create(event); 95 RefPtr<KeyboardEvent> keyboardEvent = KeyboardEvent::create(event);
95 return target.dispatchEvent(keyboardEvent.release()); 96 return target.dispatchEvent(keyboardEvent.release());
96 } 97 }
97 98
99 bool NewEventHandler::dispatchWheelEvent(Node& target, const WebWheelEvent& even t)
100 {
101 RefPtr<WheelEvent> wheelEvent = WheelEvent::create(event);
102 return target.dispatchEvent(wheelEvent.release());
103 }
104
98 bool NewEventHandler::dispatchClickEvent(Node& capturingTarget, const WebPointer Event& event) 105 bool NewEventHandler::dispatchClickEvent(Node& capturingTarget, const WebPointer Event& event)
99 { 106 {
100 ASSERT(event.type == WebInputEvent::PointerUp); 107 ASSERT(event.type == WebInputEvent::PointerUp);
101 HitTestResult hitTestResult = performHitTest(positionForEvent(event)); 108 HitTestResult hitTestResult = performHitTest(positionForEvent(event));
102 Node* releaseTarget = targetForHitTestResult(hitTestResult); 109 Node* releaseTarget = targetForHitTestResult(hitTestResult);
103 Node* clickTarget = NodeRenderingTraversal::commonAncestor(*releaseTarget, c apturingTarget); 110 Node* clickTarget = NodeRenderingTraversal::commonAncestor(*releaseTarget, c apturingTarget);
104 if (!clickTarget) 111 if (!clickTarget)
105 return true; 112 return true;
106 // TODO(abarth): Make a proper gesture event that includes information from the event. 113 // TODO(abarth): Make a proper gesture event that includes information from the event.
107 return clickTarget->dispatchEvent(Event::createCancelableBubble(EventTypeNam es::click)); 114 return clickTarget->dispatchEvent(Event::createCancelableBubble(EventTypeNam es::click));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 // If the keydown event was handled, we don't want to "generate" a keypress 167 // If the keydown event was handled, we don't want to "generate" a keypress
161 // event for that keystroke. However, we'll receive a Char event from the 168 // event for that keystroke. However, we'll receive a Char event from the
162 // embedder regardless, so we set m_suppressNextCharEvent, will will prevent 169 // embedder regardless, so we set m_suppressNextCharEvent, will will prevent
163 // us from dispatching the keypress event when we receive that Char event. 170 // us from dispatching the keypress event when we receive that Char event.
164 if (handled && event.type == WebInputEvent::KeyDown) 171 if (handled && event.type == WebInputEvent::KeyDown)
165 m_suppressNextCharEvent = true; 172 m_suppressNextCharEvent = true;
166 173
167 return handled; 174 return handled;
168 } 175 }
169 176
177 bool NewEventHandler::handleWheelEvent(const WebWheelEvent& event)
178 {
179 HitTestResult hitTestResult = performHitTest(positionForEvent(event));
180 RefPtr<Node> target = targetForHitTestResult(hitTestResult);
181 return target && !dispatchWheelEvent(*target, event);
182 }
183
170 bool NewEventHandler::handlePointerDownEvent(const WebPointerEvent& event) 184 bool NewEventHandler::handlePointerDownEvent(const WebPointerEvent& event)
171 { 185 {
172 // In principle, we shouldn't get another pointer down for the same 186 // In principle, we shouldn't get another pointer down for the same
173 // pointer ID, but for mice, we don't get a pointer cancel when you 187 // pointer ID, but for mice, we don't get a pointer cancel when you
174 // drag outside the window frame on Linux. For now, send the pointer 188 // drag outside the window frame on Linux. For now, send the pointer
175 // cancel at this point. 189 // cancel at this point.
176 if (event.kind == WebPointerEvent::Mouse 190 if (event.kind == WebPointerEvent::Mouse
177 && m_targetForPointer.find(event.pointer) != m_targetForPointer.end()) { 191 && m_targetForPointer.find(event.pointer) != m_targetForPointer.end()) {
178 WebPointerEvent fakeCancel = event; 192 WebPointerEvent fakeCancel = event;
179 fakeCancel.type = WebInputEvent::PointerCancel; 193 fakeCancel.type = WebInputEvent::PointerCancel;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 auto it = m_targetForPointer.find(event.pointer); 239 auto it = m_targetForPointer.find(event.pointer);
226 if (it == m_targetForPointer.end()) 240 if (it == m_targetForPointer.end())
227 return false; 241 return false;
228 RefPtr<Node> target = it->second; 242 RefPtr<Node> target = it->second;
229 m_targetForPointer.erase(it); 243 m_targetForPointer.erase(it);
230 ASSERT(target); 244 ASSERT(target);
231 return dispatchPointerEvent(*target, event); 245 return dispatchPointerEvent(*target, event);
232 } 246 }
233 247
234 } 248 }
OLDNEW
« no previous file with comments | « sky/engine/core/frame/NewEventHandler.h ('k') | sky/engine/public/platform/WebInputEvent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698