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

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: Rebased 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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 pointerEventInit.setView(view); 145 pointerEventInit.setView(view);
146 if (relatedTarget) 146 if (relatedTarget)
147 pointerEventInit.setRelatedTarget(relatedTarget); 147 pointerEventInit.setRelatedTarget(relatedTarget);
148 148
149 return PointerEvent::create(pointerEventName, pointerEventInit); 149 return PointerEvent::create(pointerEventName, pointerEventInit);
150 } 150 }
151 151
152 PointerEvent* PointerEventFactory::create(const AtomicString& type, 152 PointerEvent* PointerEventFactory::create(const AtomicString& type,
153 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers, 153 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers,
154 const FloatSize& pointRadius, 154 const FloatSize& pointRadius,
155 const FloatPoint& clientPoint) 155 const FloatPoint& clientPoint,
156 DOMWindow* view)
156 { 157 {
157 const PlatformTouchPoint::TouchState pointState = touchPoint.state(); 158 const PlatformTouchPoint::TouchState pointState = touchPoint.state();
158 159
159 bool pointerReleasedOrCancelled = 160 bool pointerReleasedOrCancelled =
160 pointState == PlatformTouchPoint::TouchReleased 161 pointState == PlatformTouchPoint::TouchReleased
161 || pointState == PlatformTouchPoint::TouchCancelled; 162 || pointState == PlatformTouchPoint::TouchCancelled;
162 bool pointerPressedOrReleased = 163 bool pointerPressedOrReleased =
163 pointState == PlatformTouchPoint::TouchPressed 164 pointState == PlatformTouchPoint::TouchPressed
164 || pointState == PlatformTouchPoint::TouchReleased; 165 || pointState == PlatformTouchPoint::TouchReleased;
165 166
166 bool isEnterOrLeave = false; 167 bool isEnterOrLeave = false;
167 168
168 PointerEventInit pointerEventInit; 169 PointerEventInit pointerEventInit;
169 170
170 setIdTypeButtons(pointerEventInit, touchPoint.pointerProperties(), 171 setIdTypeButtons(pointerEventInit, touchPoint.pointerProperties(),
171 pointerReleasedOrCancelled ? 0 : 1); 172 pointerReleasedOrCancelled ? 0 : 1);
172 173
173 pointerEventInit.setWidth(pointRadius.width()); 174 pointerEventInit.setWidth(pointRadius.width());
174 pointerEventInit.setHeight(pointRadius.height()); 175 pointerEventInit.setHeight(pointRadius.height());
175 pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX); 176 pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX);
176 pointerEventInit.setTiltY(touchPoint.pointerProperties().tiltY); 177 pointerEventInit.setTiltY(touchPoint.pointerProperties().tiltY);
177 pointerEventInit.setScreenX(touchPoint.screenPos().x()); 178 pointerEventInit.setScreenX(touchPoint.screenPos().x());
178 pointerEventInit.setScreenY(touchPoint.screenPos().y()); 179 pointerEventInit.setScreenY(touchPoint.screenPos().y());
179 pointerEventInit.setClientX(clientPoint.x()); 180 pointerEventInit.setClientX(clientPoint.x());
180 pointerEventInit.setClientY(clientPoint.y()); 181 pointerEventInit.setClientY(clientPoint.y());
181 pointerEventInit.setButton(pointerPressedOrReleased ? LeftButton: NoButton); 182 pointerEventInit.setButton(pointerPressedOrReleased ? LeftButton: NoButton);
182 pointerEventInit.setPressure(getPointerEventPressure( 183 pointerEventInit.setPressure(getPointerEventPressure(
183 touchPoint.force(), pointerEventInit.buttons())); 184 touchPoint.force(), pointerEventInit.buttons()));
185 pointerEventInit.setView(view);
184 186
185 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, modifiers); 187 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, modifiers);
186 188
187 pointerEventInit.setBubbles(!isEnterOrLeave); 189 pointerEventInit.setBubbles(!isEnterOrLeave);
188 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != PlatformTouc hPoint::TouchCancelled); 190 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != PlatformTouc hPoint::TouchCancelled);
189 191
190 return PointerEvent::create(type, pointerEventInit); 192 return PointerEvent::create(type, pointerEventInit);
191 } 193 }
192 194
193 PointerEvent* PointerEventFactory::createPointerCancelEvent( 195 PointerEvent* PointerEventFactory::createPointerCancelEvent(
(...skipping 23 matching lines...) Expand all
217 PointerEventInit pointerEventInit; 219 PointerEventInit pointerEventInit;
218 pointerEventInit.setPointerId(pointerEvent->pointerId()); 220 pointerEventInit.setPointerId(pointerEvent->pointerId());
219 pointerEventInit.setPointerType(pointerEvent->pointerType()); 221 pointerEventInit.setPointerType(pointerEvent->pointerType());
220 pointerEventInit.setIsPrimary(pointerEvent->isPrimary()); 222 pointerEventInit.setIsPrimary(pointerEvent->isPrimary());
221 pointerEventInit.setBubbles(true); 223 pointerEventInit.setBubbles(true);
222 pointerEventInit.setCancelable(false); 224 pointerEventInit.setCancelable(false);
223 225
224 return PointerEvent::create(type, pointerEventInit); 226 return PointerEvent::create(type, pointerEventInit);
225 } 227 }
226 228
227 PointerEvent* PointerEventFactory::createPointerTransitionEvent( 229 PointerEvent* PointerEventFactory::createPointerBoundaryEvent(
228 PointerEvent* pointerEvent, 230 PointerEvent* pointerEvent,
229 const AtomicString& type, 231 const AtomicString& type,
230 EventTarget* relatedTarget) 232 EventTarget* relatedTarget)
231 { 233 {
232 ASSERT(type == EventTypeNames::pointerout 234 ASSERT(type == EventTypeNames::pointerout
233 || type == EventTypeNames::pointerleave 235 || type == EventTypeNames::pointerleave
234 || type == EventTypeNames::pointerover 236 || type == EventTypeNames::pointerover
235 || type == EventTypeNames::pointerenter); 237 || type == EventTypeNames::pointerenter);
236 238
237 PointerEventInit pointerEventInit; 239 PointerEventInit pointerEventInit;
238 240
239 pointerEventInit.setPointerId(pointerEvent->pointerId()); 241 pointerEventInit.setPointerId(pointerEvent->pointerId());
240 pointerEventInit.setPointerType(pointerEvent->pointerType()); 242 pointerEventInit.setPointerType(pointerEvent->pointerType());
241 pointerEventInit.setIsPrimary(pointerEvent->isPrimary()); 243 pointerEventInit.setIsPrimary(pointerEvent->isPrimary());
242 pointerEventInit.setWidth(pointerEvent->width()); 244 pointerEventInit.setWidth(pointerEvent->width());
243 pointerEventInit.setHeight(pointerEvent->height()); 245 pointerEventInit.setHeight(pointerEvent->height());
244 pointerEventInit.setTiltX(pointerEvent->tiltX()); 246 pointerEventInit.setTiltX(pointerEvent->tiltX());
245 pointerEventInit.setTiltY(pointerEvent->tiltY()); 247 pointerEventInit.setTiltY(pointerEvent->tiltY());
246 pointerEventInit.setScreenX(pointerEvent->screenX()); 248 pointerEventInit.setScreenX(pointerEvent->screenX());
247 pointerEventInit.setScreenY(pointerEvent->screenY()); 249 pointerEventInit.setScreenY(pointerEvent->screenY());
248 pointerEventInit.setClientX(pointerEvent->clientX()); 250 pointerEventInit.setClientX(pointerEvent->clientX());
249 pointerEventInit.setClientY(pointerEvent->clientY()); 251 pointerEventInit.setClientY(pointerEvent->clientY());
250 pointerEventInit.setButton(pointerEvent->button()); 252 pointerEventInit.setButton(pointerEvent->button());
251 pointerEventInit.setButtons(pointerEvent->buttons()); 253 pointerEventInit.setButtons(pointerEvent->buttons());
252 pointerEventInit.setPressure(pointerEvent->pressure()); 254 pointerEventInit.setPressure(pointerEvent->pressure());
255 pointerEventInit.setView(pointerEvent->view());
253 256
254 setBubblesAndCancelable(pointerEventInit, type); 257 setBubblesAndCancelable(pointerEventInit, type);
255 258
256 if (relatedTarget) 259 if (relatedTarget)
257 pointerEventInit.setRelatedTarget(relatedTarget); 260 pointerEventInit.setRelatedTarget(relatedTarget);
258 261
259 return PointerEvent::create(type, pointerEventInit); 262 return PointerEvent::create(type, pointerEventInit);
260 } 263 }
261 264
262 PointerEventFactory::PointerEventFactory() 265 PointerEventFactory::PointerEventFactory()
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 if (properties.pointerType 385 if (properties.pointerType
383 == WebPointerProperties::PointerType::Mouse) 386 == WebPointerProperties::PointerType::Mouse)
384 return PointerEventFactory::s_mouseId; 387 return PointerEventFactory::s_mouseId;
385 IncomingId id(properties.pointerType, properties.id); 388 IncomingId id(properties.pointerType, properties.id);
386 if (m_pointerIncomingIdMapping.contains(id)) 389 if (m_pointerIncomingIdMapping.contains(id))
387 return m_pointerIncomingIdMapping.get(id); 390 return m_pointerIncomingIdMapping.get(id);
388 return PointerEventFactory::s_invalidId; 391 return PointerEventFactory::s_invalidId;
389 } 392 }
390 393
391 } // namespace blink 394 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698