| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. |
| 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 3557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3568 | 3568 |
| 3569 pointerEventInit.setCtrlKey(event.ctrlKey()); | 3569 pointerEventInit.setCtrlKey(event.ctrlKey()); |
| 3570 pointerEventInit.setShiftKey(event.shiftKey()); | 3570 pointerEventInit.setShiftKey(event.shiftKey()); |
| 3571 pointerEventInit.setAltKey(event.altKey()); | 3571 pointerEventInit.setAltKey(event.altKey()); |
| 3572 pointerEventInit.setMetaKey(event.metaKey()); | 3572 pointerEventInit.setMetaKey(event.metaKey()); |
| 3573 | 3573 |
| 3574 pointerEventInit.setBubbles(!isEnterOrLeave); | 3574 pointerEventInit.setBubbles(!isEnterOrLeave); |
| 3575 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != Platform
TouchPoint::TouchCancelled); | 3575 pointerEventInit.setCancelable(!isEnterOrLeave && pointState != Platform
TouchPoint::TouchCancelled); |
| 3576 | 3576 |
| 3577 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create(eve
ntName, pointerEventInit); | 3577 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create(eve
ntName, pointerEventInit); |
| 3578 touchInfo.touchTarget->toNode()->dispatchPointerEvent(pointerEvent.get()
); | 3578 touchInfo.touchTarget->dispatchEvent(pointerEvent.get()); |
| 3579 touchInfo.consumed = pointerEvent->defaultPrevented() || pointerEvent->d
efaultHandled(); | 3579 touchInfo.consumed = pointerEvent->defaultPrevented() || pointerEvent->d
efaultHandled(); |
| 3580 | 3580 |
| 3581 // Remove the released/cancelled id at the end to correctly determine pr
imary id above. | 3581 // Remove the released/cancelled id at the end to correctly determine pr
imary id above. |
| 3582 if (pointerReleasedOrCancelled) | 3582 if (pointerReleasedOrCancelled) |
| 3583 m_pointerIdManager.remove(PointerIdManager::PointerTypeTouch, pointe
rId); | 3583 m_pointerIdManager.remove(PointerIdManager::PointerTypeTouch, pointe
rId); |
| 3584 } | 3584 } |
| 3585 } | 3585 } |
| 3586 | 3586 |
| 3587 void EventHandler::sendPointerCancels(WillBeHeapVector<TouchInfo>& touchInfos) | 3587 void EventHandler::sendPointerCancels(WillBeHeapVector<TouchInfo>& touchInfos) |
| 3588 { | 3588 { |
| 3589 for (unsigned i = 0; i < touchInfos.size(); ++i) { | 3589 for (unsigned i = 0; i < touchInfos.size(); ++i) { |
| 3590 TouchInfo& touchInfo = touchInfos[i]; | 3590 TouchInfo& touchInfo = touchInfos[i]; |
| 3591 const PlatformTouchPoint& point = touchInfo.point; | 3591 const PlatformTouchPoint& point = touchInfo.point; |
| 3592 const unsigned& pointerId = point.id(); | 3592 const unsigned& pointerId = point.id(); |
| 3593 const PlatformTouchPoint::State pointState = point.state(); | 3593 const PlatformTouchPoint::State pointState = point.state(); |
| 3594 | 3594 |
| 3595 if (pointState == PlatformTouchPoint::TouchReleased | 3595 if (pointState == PlatformTouchPoint::TouchReleased |
| 3596 || pointState == PlatformTouchPoint::TouchCancelled) | 3596 || pointState == PlatformTouchPoint::TouchCancelled) |
| 3597 continue; | 3597 continue; |
| 3598 | 3598 |
| 3599 PointerEventInit pointerEventInit; | 3599 PointerEventInit pointerEventInit; |
| 3600 pointerEventInit.setPointerId(pointerId); | 3600 pointerEventInit.setPointerId(pointerId); |
| 3601 pointerEventInit.setBubbles(true); | 3601 pointerEventInit.setBubbles(true); |
| 3602 pointerEventInit.setCancelable(false); | 3602 pointerEventInit.setCancelable(false); |
| 3603 | 3603 |
| 3604 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create( | 3604 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create( |
| 3605 EventTypeNames::pointercancel, pointerEventInit); | 3605 EventTypeNames::pointercancel, pointerEventInit); |
| 3606 touchInfo.touchTarget->toNode()->dispatchPointerEvent(pointerEvent.get()
); | 3606 touchInfo.touchTarget->dispatchEvent(pointerEvent.get()); |
| 3607 | 3607 |
| 3608 m_pointerIdManager.remove(PointerIdManager::PointerTypeTouch, pointerId)
; | 3608 m_pointerIdManager.remove(PointerIdManager::PointerTypeTouch, pointerId)
; |
| 3609 } | 3609 } |
| 3610 } | 3610 } |
| 3611 | 3611 |
| 3612 bool EventHandler::dispatchTouchEvents(const PlatformTouchEvent& event, | 3612 bool EventHandler::dispatchTouchEvents(const PlatformTouchEvent& event, |
| 3613 WillBeHeapVector<TouchInfo>& touchInfos, bool freshTouchEvents, bool allTouc
hReleased) | 3613 WillBeHeapVector<TouchInfo>& touchInfos, bool freshTouchEvents, bool allTouc
hReleased) |
| 3614 { | 3614 { |
| 3615 // Build up the lists to use for the 'touches', 'targetTouches' and | 3615 // Build up the lists to use for the 'touches', 'targetTouches' and |
| 3616 // 'changedTouches' attributes in the JS event. See | 3616 // 'changedTouches' attributes in the JS event. See |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3699 const AtomicString& eventName(touchEventNameForTouchPointState(static_ca
st<PlatformTouchPoint::State>(state))); | 3699 const AtomicString& eventName(touchEventNameForTouchPointState(static_ca
st<PlatformTouchPoint::State>(state))); |
| 3700 const EventTargetSet& targetsForState = changedTouches[state].m_targets; | 3700 const EventTargetSet& targetsForState = changedTouches[state].m_targets; |
| 3701 for (const RefPtrWillBeMember<EventTarget>& eventTarget : targetsForStat
e) { | 3701 for (const RefPtrWillBeMember<EventTarget>& eventTarget : targetsForStat
e) { |
| 3702 EventTarget* touchEventTarget = eventTarget.get(); | 3702 EventTarget* touchEventTarget = eventTarget.get(); |
| 3703 RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create( | 3703 RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create( |
| 3704 touches.get(), touchesByTarget.get(touchEventTarget), changedTou
ches[state].m_touches.get(), | 3704 touches.get(), touchesByTarget.get(touchEventTarget), changedTou
ches[state].m_touches.get(), |
| 3705 eventName, touchEventTarget->toNode()->document().domWindow(), | 3705 eventName, touchEventTarget->toNode()->document().domWindow(), |
| 3706 event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey
(), | 3706 event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey
(), |
| 3707 event.cancelable(), event.causesScrollingIfUncanceled(), event.t
imestamp()); | 3707 event.cancelable(), event.causesScrollingIfUncanceled(), event.t
imestamp()); |
| 3708 | 3708 |
| 3709 touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get()); | 3709 touchEventTarget->dispatchEvent(touchEvent.get()); |
| 3710 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() ||
touchEvent->defaultHandled(); | 3710 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() ||
touchEvent->defaultHandled(); |
| 3711 } | 3711 } |
| 3712 } | 3712 } |
| 3713 | 3713 |
| 3714 return swallowedEvent; | 3714 return swallowedEvent; |
| 3715 } | 3715 } |
| 3716 | 3716 |
| 3717 bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) | 3717 bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) |
| 3718 { | 3718 { |
| 3719 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); | 3719 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4020 unsigned EventHandler::accessKeyModifiers() | 4020 unsigned EventHandler::accessKeyModifiers() |
| 4021 { | 4021 { |
| 4022 #if OS(MACOSX) | 4022 #if OS(MACOSX) |
| 4023 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; | 4023 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; |
| 4024 #else | 4024 #else |
| 4025 return PlatformEvent::AltKey; | 4025 return PlatformEvent::AltKey; |
| 4026 #endif | 4026 #endif |
| 4027 } | 4027 } |
| 4028 | 4028 |
| 4029 } // namespace blink | 4029 } // namespace blink |
| OLD | NEW |