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 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
355 if (singleClick) | 355 if (singleClick) |
356 focusDocumentView(); | 356 focusDocumentView(); |
357 | 357 |
358 Node* innerNode = event.innerNode(); | 358 Node* innerNode = event.innerNode(); |
359 | 359 |
360 m_mousePressNode = innerNode; | 360 m_mousePressNode = innerNode; |
361 m_dragStartPos = event.event().position(); | 361 m_dragStartPos = event.event().position(); |
362 | 362 |
363 bool swallowEvent = false; | 363 bool swallowEvent = false; |
364 m_mousePressed = true; | 364 m_mousePressed = true; |
365 selectionController().initializeSelectionState(); | |
366 | 365 |
367 if (event.event().clickCount() == 2) | 366 if (event.event().clickCount() == 2) |
368 swallowEvent = selectionController().handleMousePressEventDoubleClick(ev ent); | 367 swallowEvent = selectionController().handleMousePressEventDoubleClick(ev ent); |
369 else if (event.event().clickCount() >= 3) | 368 else if (event.event().clickCount() >= 3) |
370 swallowEvent = selectionController().handleMousePressEventTripleClick(ev ent); | 369 swallowEvent = selectionController().handleMousePressEventTripleClick(ev ent); |
371 else | 370 else |
372 swallowEvent = selectionController().handleMousePressEventSingleClick(ev ent); | 371 swallowEvent = selectionController().handleMousePressEventSingleClick(ev ent); |
373 | 372 |
374 m_mouseDownMayStartAutoscroll = selectionController().mouseDownMayStartSelec t() | 373 m_mouseDownMayStartAutoscroll = selectionController().mouseDownMayStartSelec t() |
375 || (m_mousePressNode && m_mousePressNode->layoutBox() && m_mousePressNod e->layoutBox()->canBeProgramaticallyScrolled()); | 374 || (m_mousePressNode && m_mousePressNode->layoutBox() && m_mousePressNod e->layoutBox()->canBeProgramaticallyScrolled()); |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
943 m_resizeScrollableArea->setInResizeMode(true); | 942 m_resizeScrollableArea->setInResizeMode(true); |
944 m_offsetFromResizeCorner = LayoutSize(m_resizeScrollableArea->offset FromResizeCorner(p)); | 943 m_offsetFromResizeCorner = LayoutSize(m_resizeScrollableArea->offset FromResizeCorner(p)); |
945 invalidateClick(); | 944 invalidateClick(); |
946 return true; | 945 return true; |
947 } | 946 } |
948 } | 947 } |
949 | 948 |
950 m_frame->selection().setCaretBlinkingSuspended(true); | 949 m_frame->selection().setCaretBlinkingSuspended(true); |
951 | 950 |
952 bool swallowEvent = !dispatchMouseEvent(EventTypeNames::mousedown, mev.inner Node(), m_clickCount, mouseEvent, true); | 951 bool swallowEvent = !dispatchMouseEvent(EventTypeNames::mousedown, mev.inner Node(), m_clickCount, mouseEvent, true); |
952 // m_selectionInitiationState is initialized after dispatching mousedown eve nt in order not to keep the selection by DOM APIs | |
yosin_UTC9
2015/07/06 01:57:30
nit: Could you try to keep comments in 80 chars? I
Miyoung Shin(g)
2015/07/13 03:32:57
Done.
| |
953 // Because we can't give the user the chance to handle the selection by user action like dragging if we keep the selection in case of mousedown. | |
954 // FireFox also has the same behavior and it's more compatible with other br owsers. | |
955 selectionController().initializeSelectionState(); | |
953 HitTestResult hitTestResult = hitTestResultInFrame(m_frame, mouseEvent.posit ion(), HitTestRequest::ReadOnly); | 956 HitTestResult hitTestResult = hitTestResultInFrame(m_frame, mouseEvent.posit ion(), HitTestRequest::ReadOnly); |
954 swallowEvent = swallowEvent || handleMouseFocus(MouseEventWithHitTestResults (mouseEvent, hitTestResult)); | 957 swallowEvent = swallowEvent || handleMouseFocus(MouseEventWithHitTestResults (mouseEvent, hitTestResult)); |
955 m_capturesDragging = !swallowEvent || mev.scrollbar(); | 958 m_capturesDragging = !swallowEvent || mev.scrollbar(); |
956 | 959 |
957 // If the hit testing originally determined the event was in a scrollbar, re fetch the MouseEventWithHitTestResults | 960 // If the hit testing originally determined the event was in a scrollbar, re fetch the MouseEventWithHitTestResults |
958 // in case the scrollbar widget was destroyed when the mouse event was handl ed. | 961 // in case the scrollbar widget was destroyed when the mouse event was handl ed. |
959 if (mev.scrollbar()) { | 962 if (mev.scrollbar()) { |
960 const bool wasLastScrollBar = mev.scrollbar() == m_lastScrollbarUnderMou se.get(); | 963 const bool wasLastScrollBar = mev.scrollbar() == m_lastScrollbarUnderMou se.get(); |
961 HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active ); | 964 HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active ); |
962 mev = m_frame->document()->prepareMouseEvent(request, documentPoint, mou seEvent); | 965 mev = m_frame->document()->prepareMouseEvent(request, documentPoint, mou seEvent); |
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2014 IntPoint tappedPosition = gestureEvent.position(); | 2017 IntPoint tappedPosition = gestureEvent.position(); |
2015 | 2018 |
2016 if (m_clickNode && m_clickNode->isTextNode()) | 2019 if (m_clickNode && m_clickNode->isTextNode()) |
2017 m_clickNode = ComposedTreeTraversal::parent(*m_clickNode); | 2020 m_clickNode = ComposedTreeTraversal::parent(*m_clickNode); |
2018 | 2021 |
2019 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa lPosition(), | 2022 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa lPosition(), |
2020 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(), | 2023 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(), |
2021 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut tonDown), | 2024 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut tonDown), |
2022 PlatformMouseEvent::FromTouch, gestureEvent.timestamp()); | 2025 PlatformMouseEvent::FromTouch, gestureEvent.timestamp()); |
2023 bool swallowMouseDownEvent = !dispatchMouseEvent(EventTypeNames::mousedown, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown, true); | 2026 bool swallowMouseDownEvent = !dispatchMouseEvent(EventTypeNames::mousedown, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown, true); |
2027 selectionController().initializeSelectionState(); | |
2024 if (!swallowMouseDownEvent) | 2028 if (!swallowMouseDownEvent) |
2025 swallowMouseDownEvent = handleMouseFocus(MouseEventWithHitTestResults(fa keMouseDown, currentHitTest)); | 2029 swallowMouseDownEvent = handleMouseFocus(MouseEventWithHitTestResults(fa keMouseDown, currentHitTest)); |
2026 if (!swallowMouseDownEvent) | 2030 if (!swallowMouseDownEvent) |
2027 swallowMouseDownEvent = handleMousePressEvent(MouseEventWithHitTestResul ts(fakeMouseDown, currentHitTest)); | 2031 swallowMouseDownEvent = handleMousePressEvent(MouseEventWithHitTestResul ts(fakeMouseDown, currentHitTest)); |
2028 | 2032 |
2029 if (currentHitTest.innerNode()) { | 2033 if (currentHitTest.innerNode()) { |
2030 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap); | 2034 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap); |
2031 HitTestResult result = currentHitTest; | 2035 HitTestResult result = currentHitTest; |
2032 result.setToShadowHostIfInUserAgentShadowRoot(); | 2036 result.setToShadowHostIfInUserAgentShadowRoot(); |
2033 m_frame->chromeClient().onMouseDown(result.innerNode()); | 2037 m_frame->chromeClient().onMouseDown(result.innerNode()); |
(...skipping 1835 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3869 unsigned EventHandler::accessKeyModifiers() | 3873 unsigned EventHandler::accessKeyModifiers() |
3870 { | 3874 { |
3871 #if OS(MACOSX) | 3875 #if OS(MACOSX) |
3872 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; | 3876 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; |
3873 #else | 3877 #else |
3874 return PlatformEvent::AltKey; | 3878 return PlatformEvent::AltKey; |
3875 #endif | 3879 #endif |
3876 } | 3880 } |
3877 | 3881 |
3878 } // namespace blink | 3882 } // namespace blink |
OLD | NEW |