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

Side by Side Diff: third_party/WebKit/Source/core/events/PointerEventFactory.cpp

Issue 1976603006: Set view property of pointer events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "core/events/PointerEventFactory.h" 5 #include "core/events/PointerEventFactory.h"
6 6
7 #include "core/frame/FrameView.h" 7 #include "core/frame/FrameView.h"
8 #include "platform/geometry/FloatSize.h" 8 #include "platform/geometry/FloatSize.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 pointerEventInit.setView(view); 139 pointerEventInit.setView(view);
140 if (relatedTarget) 140 if (relatedTarget)
141 pointerEventInit.setRelatedTarget(relatedTarget); 141 pointerEventInit.setRelatedTarget(relatedTarget);
142 142
143 return PointerEvent::create(pointerEventName, pointerEventInit); 143 return PointerEvent::create(pointerEventName, pointerEventInit);
144 } 144 }
145 145
146 PointerEvent* PointerEventFactory::create(const AtomicString& type, 146 PointerEvent* PointerEventFactory::create(const AtomicString& type,
147 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers, 147 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers,
148 const FloatSize& pointRadius, 148 const FloatSize& pointRadius,
149 const FloatPoint& clientPoint) 149 const FloatPoint& clientPoint,
150 LocalDOMWindow* view)
150 { 151 {
151 const PlatformTouchPoint::TouchState pointState = touchPoint.state(); 152 const PlatformTouchPoint::TouchState pointState = touchPoint.state();
152 153
153 bool pointerReleasedOrCancelled = 154 bool pointerReleasedOrCancelled =
154 pointState == PlatformTouchPoint::TouchReleased 155 pointState == PlatformTouchPoint::TouchReleased
155 || pointState == PlatformTouchPoint::TouchCancelled; 156 || pointState == PlatformTouchPoint::TouchCancelled;
156 bool pointerPressedOrReleased = 157 bool pointerPressedOrReleased =
157 pointState == PlatformTouchPoint::TouchPressed 158 pointState == PlatformTouchPoint::TouchPressed
158 || pointState == PlatformTouchPoint::TouchReleased; 159 || pointState == PlatformTouchPoint::TouchReleased;
159 160
160 bool isEnterOrLeave = false; 161 bool isEnterOrLeave = false;
161 162
162 PointerEventInit pointerEventInit; 163 PointerEventInit pointerEventInit;
163 164
164 setIdTypeButtons(pointerEventInit, touchPoint.pointerProperties(), 165 setIdTypeButtons(pointerEventInit, touchPoint.pointerProperties(),
165 pointerReleasedOrCancelled ? 0 : 1); 166 pointerReleasedOrCancelled ? 0 : 1);
166 167
167 pointerEventInit.setWidth(pointRadius.width()); 168 pointerEventInit.setWidth(pointRadius.width());
168 pointerEventInit.setHeight(pointRadius.height()); 169 pointerEventInit.setHeight(pointRadius.height());
169 pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX); 170 pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX);
170 pointerEventInit.setTiltY(touchPoint.pointerProperties().tiltY); 171 pointerEventInit.setTiltY(touchPoint.pointerProperties().tiltY);
171 pointerEventInit.setScreenX(touchPoint.screenPos().x()); 172 pointerEventInit.setScreenX(touchPoint.screenPos().x());
172 pointerEventInit.setScreenY(touchPoint.screenPos().y()); 173 pointerEventInit.setScreenY(touchPoint.screenPos().y());
173 pointerEventInit.setClientX(clientPoint.x()); 174 pointerEventInit.setClientX(clientPoint.x());
174 pointerEventInit.setClientY(clientPoint.y()); 175 pointerEventInit.setClientY(clientPoint.y());
175 pointerEventInit.setButton(pointerPressedOrReleased ? LeftButton: NoButton); 176 pointerEventInit.setButton(pointerPressedOrReleased ? LeftButton: NoButton);
176 pointerEventInit.setPressure(getPointerEventPressure( 177 pointerEventInit.setPressure(getPointerEventPressure(
177 touchPoint.force(), pointerEventInit.buttons())); 178 touchPoint.force(), pointerEventInit.buttons()));
179 pointerEventInit.setView(view);
178 180
179 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, modifiers); 181 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, modifiers);
180 182
181 pointerEventInit.setBubbles(!isEnterOrLeave); 183 pointerEventInit.setBubbles(!isEnterOrLeave);
182 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != PlatformTouc hPoint::TouchCancelled); 184 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != PlatformTouc hPoint::TouchCancelled);
183 185
184 return PointerEvent::create(type, pointerEventInit); 186 return PointerEvent::create(type, pointerEventInit);
185 } 187 }
186 188
187 PointerEvent* PointerEventFactory::createPointerCancelEvent( 189 PointerEvent* PointerEventFactory::createPointerCancelEvent(
(...skipping 23 matching lines...) Expand all
211 PointerEventInit pointerEventInit; 213 PointerEventInit pointerEventInit;
212 pointerEventInit.setPointerId(pointerEvent->pointerId()); 214 pointerEventInit.setPointerId(pointerEvent->pointerId());
213 pointerEventInit.setPointerType(pointerEvent->pointerType()); 215 pointerEventInit.setPointerType(pointerEvent->pointerType());
214 pointerEventInit.setIsPrimary(pointerEvent->isPrimary()); 216 pointerEventInit.setIsPrimary(pointerEvent->isPrimary());
215 pointerEventInit.setBubbles(true); 217 pointerEventInit.setBubbles(true);
216 pointerEventInit.setCancelable(false); 218 pointerEventInit.setCancelable(false);
217 219
218 return PointerEvent::create(type, pointerEventInit); 220 return PointerEvent::create(type, pointerEventInit);
219 } 221 }
220 222
221 PointerEvent* PointerEventFactory::createPointerTransitionEvent( 223 PointerEvent* PointerEventFactory::createPointerBoundaryEvent(
222 PointerEvent* pointerEvent, 224 PointerEvent* pointerEvent,
223 const AtomicString& type, 225 const AtomicString& type,
224 EventTarget* relatedTarget) 226 EventTarget* relatedTarget)
225 { 227 {
226 ASSERT(type == EventTypeNames::pointerout 228 ASSERT(type == EventTypeNames::pointerout
227 || type == EventTypeNames::pointerleave 229 || type == EventTypeNames::pointerleave
228 || type == EventTypeNames::pointerover 230 || type == EventTypeNames::pointerover
229 || type == EventTypeNames::pointerenter); 231 || type == EventTypeNames::pointerenter);
230 232
231 PointerEventInit pointerEventInit; 233 PointerEventInit pointerEventInit;
232 234
233 pointerEventInit.setPointerId(pointerEvent->pointerId()); 235 pointerEventInit.setPointerId(pointerEvent->pointerId());
234 pointerEventInit.setPointerType(pointerEvent->pointerType()); 236 pointerEventInit.setPointerType(pointerEvent->pointerType());
235 pointerEventInit.setIsPrimary(pointerEvent->isPrimary()); 237 pointerEventInit.setIsPrimary(pointerEvent->isPrimary());
236 pointerEventInit.setWidth(pointerEvent->width()); 238 pointerEventInit.setWidth(pointerEvent->width());
237 pointerEventInit.setHeight(pointerEvent->height()); 239 pointerEventInit.setHeight(pointerEvent->height());
238 pointerEventInit.setTiltX(pointerEvent->tiltX()); 240 pointerEventInit.setTiltX(pointerEvent->tiltX());
239 pointerEventInit.setTiltY(pointerEvent->tiltY()); 241 pointerEventInit.setTiltY(pointerEvent->tiltY());
240 pointerEventInit.setScreenX(pointerEvent->screenX()); 242 pointerEventInit.setScreenX(pointerEvent->screenX());
241 pointerEventInit.setScreenY(pointerEvent->screenY()); 243 pointerEventInit.setScreenY(pointerEvent->screenY());
242 pointerEventInit.setClientX(pointerEvent->clientX()); 244 pointerEventInit.setClientX(pointerEvent->clientX());
243 pointerEventInit.setClientY(pointerEvent->clientY()); 245 pointerEventInit.setClientY(pointerEvent->clientY());
244 pointerEventInit.setButton(pointerEvent->button()); 246 pointerEventInit.setButton(pointerEvent->button());
245 pointerEventInit.setButtons(pointerEvent->buttons()); 247 pointerEventInit.setButtons(pointerEvent->buttons());
246 pointerEventInit.setPressure(pointerEvent->pressure()); 248 pointerEventInit.setPressure(pointerEvent->pressure());
249 pointerEventInit.setView(pointerEvent->view());
247 250
248 setBubblesAndCancelable(pointerEventInit, type); 251 setBubblesAndCancelable(pointerEventInit, type);
249 252
250 if (relatedTarget) 253 if (relatedTarget)
251 pointerEventInit.setRelatedTarget(relatedTarget); 254 pointerEventInit.setRelatedTarget(relatedTarget);
252 255
253 return PointerEvent::create(type, pointerEventInit); 256 return PointerEvent::create(type, pointerEventInit);
254 } 257 }
255 258
256 PointerEventFactory::PointerEventFactory() 259 PointerEventFactory::PointerEventFactory()
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 if (properties.pointerType 379 if (properties.pointerType
377 == WebPointerProperties::PointerType::Mouse) 380 == WebPointerProperties::PointerType::Mouse)
378 return PointerEventFactory::s_mouseId; 381 return PointerEventFactory::s_mouseId;
379 IncomingId id(properties.pointerType, properties.id); 382 IncomingId id(properties.pointerType, properties.id);
380 if (m_pointerIncomingIdMapping.contains(id)) 383 if (m_pointerIncomingIdMapping.contains(id))
381 return m_pointerIncomingIdMapping.get(id); 384 return m_pointerIncomingIdMapping.get(id);
382 return PointerEventFactory::s_invalidId; 385 return PointerEventFactory::s_invalidId;
383 } 386 }
384 387
385 } // namespace blink 388 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698