| 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 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 m_mousePressed = true; | 631 m_mousePressed = true; |
| 632 | 632 |
| 633 if (event.event().clickCount() == 2) | 633 if (event.event().clickCount() == 2) |
| 634 swallowEvent = handleMousePressEventDoubleClick(event); | 634 swallowEvent = handleMousePressEventDoubleClick(event); |
| 635 else if (event.event().clickCount() >= 3) | 635 else if (event.event().clickCount() >= 3) |
| 636 swallowEvent = handleMousePressEventTripleClick(event); | 636 swallowEvent = handleMousePressEventTripleClick(event); |
| 637 else | 637 else |
| 638 swallowEvent = handleMousePressEventSingleClick(event); | 638 swallowEvent = handleMousePressEventSingleClick(event); |
| 639 | 639 |
| 640 m_mouseDownMayStartAutoscroll = m_mouseDownMayStartSelect | 640 m_mouseDownMayStartAutoscroll = m_mouseDownMayStartSelect |
| 641 || (m_mousePressNode && m_mousePressNode->renderBox() && m_mousePressNod
e->renderBox()->canBeProgramaticallyScrolled()); | 641 || (m_mousePressNode && m_mousePressNode->layoutBox() && m_mousePressNod
e->layoutBox()->canBeProgramaticallyScrolled()); |
| 642 | 642 |
| 643 return swallowEvent; | 643 return swallowEvent; |
| 644 } | 644 } |
| 645 | 645 |
| 646 bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e
vent) | 646 bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e
vent) |
| 647 { | 647 { |
| 648 TRACE_EVENT0("blink", "EventHandler::handleMouseDraggedEvent"); | 648 TRACE_EVENT0("blink", "EventHandler::handleMouseDraggedEvent"); |
| 649 | 649 |
| 650 // While resetting m_mousePressed here may seem out of place, it turns out | 650 // While resetting m_mousePressed here may seem out of place, it turns out |
| 651 // to be needed to handle some bugs^Wfeatures in Blink mouse event handling: | 651 // to be needed to handle some bugs^Wfeatures in Blink mouse event handling: |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 835 | 835 |
| 836 #if OS(WIN) | 836 #if OS(WIN) |
| 837 | 837 |
| 838 void EventHandler::startPanScrolling(LayoutObject* renderer) | 838 void EventHandler::startPanScrolling(LayoutObject* renderer) |
| 839 { | 839 { |
| 840 if (!renderer->isBox()) | 840 if (!renderer->isBox()) |
| 841 return; | 841 return; |
| 842 AutoscrollController* controller = autoscrollController(); | 842 AutoscrollController* controller = autoscrollController(); |
| 843 if (!controller) | 843 if (!controller) |
| 844 return; | 844 return; |
| 845 controller->startPanScrolling(toRenderBox(renderer), lastKnownMousePosition(
)); | 845 controller->startPanScrolling(toLayoutBox(renderer), lastKnownMousePosition(
)); |
| 846 invalidateClick(); | 846 invalidateClick(); |
| 847 } | 847 } |
| 848 | 848 |
| 849 #endif // OS(WIN) | 849 #endif // OS(WIN) |
| 850 | 850 |
| 851 AutoscrollController* EventHandler::autoscrollController() const | 851 AutoscrollController* EventHandler::autoscrollController() const |
| 852 { | 852 { |
| 853 if (Page* page = m_frame->page()) | 853 if (Page* page = m_frame->page()) |
| 854 return &page->autoscrollController(); | 854 return &page->autoscrollController(); |
| 855 return nullptr; | 855 return nullptr; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 if (!node) | 916 if (!node) |
| 917 node = m_frame->document()->focusedElement(); | 917 node = m_frame->document()->focusedElement(); |
| 918 | 918 |
| 919 if (!node) | 919 if (!node) |
| 920 node = m_mousePressNode.get(); | 920 node = m_mousePressNode.get(); |
| 921 | 921 |
| 922 if (!node || !node->renderer()) | 922 if (!node || !node->renderer()) |
| 923 return false; | 923 return false; |
| 924 | 924 |
| 925 bool rootLayerScrolls = m_frame->settings() && m_frame->settings()->rootLaye
rScrolls(); | 925 bool rootLayerScrolls = m_frame->settings() && m_frame->settings()->rootLaye
rScrolls(); |
| 926 RenderBox* curBox = node->renderer()->enclosingBox(); | 926 LayoutBox* curBox = node->renderer()->enclosingBox(); |
| 927 while (curBox && (rootLayerScrolls || !curBox->isRenderView())) { | 927 while (curBox && (rootLayerScrolls || !curBox->isRenderView())) { |
| 928 ScrollDirection physicalDirection = toPhysicalDirection( | 928 ScrollDirection physicalDirection = toPhysicalDirection( |
| 929 direction, curBox->isHorizontalWritingMode(), curBox->style()->isFli
ppedBlocksWritingMode()); | 929 direction, curBox->isHorizontalWritingMode(), curBox->style()->isFli
ppedBlocksWritingMode()); |
| 930 | 930 |
| 931 // If we're at the stopNode, we should try to scroll it but we shouldn't
bubble past it | 931 // If we're at the stopNode, we should try to scroll it but we shouldn't
bubble past it |
| 932 bool shouldStopBubbling = stopNode && *stopNode && curBox->node() == *st
opNode; | 932 bool shouldStopBubbling = stopNode && *stopNode && curBox->node() == *st
opNode; |
| 933 bool didScroll = curBox->scroll(physicalDirection, granularity, delta); | 933 bool didScroll = curBox->scroll(physicalDirection, granularity, delta); |
| 934 | 934 |
| 935 if (didScroll && stopNode) | 935 if (didScroll && stopNode) |
| 936 *stopNode = curBox->node(); | 936 *stopNode = curBox->node(); |
| (...skipping 1580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2517 if (gestureEvent.preventPropagation()) | 2517 if (gestureEvent.preventPropagation()) |
| 2518 m_previousGestureScrolledNode = m_scrollGestureHandlingNode; | 2518 m_previousGestureScrolledNode = m_scrollGestureHandlingNode; |
| 2519 | 2519 |
| 2520 return true; | 2520 return true; |
| 2521 } | 2521 } |
| 2522 | 2522 |
| 2523 | 2523 |
| 2524 if (gestureEvent.preventPropagation()) | 2524 if (gestureEvent.preventPropagation()) |
| 2525 stopNode = m_previousGestureScrolledNode.get(); | 2525 stopNode = m_previousGestureScrolledNode.get(); |
| 2526 | 2526 |
| 2527 // First try to scroll the closest scrollable RenderBox ancestor of |nod
e|. | 2527 // First try to scroll the closest scrollable LayoutBox ancestor of |nod
e|. |
| 2528 ScrollGranularity granularity = ScrollByPixel; | 2528 ScrollGranularity granularity = ScrollByPixel; |
| 2529 bool horizontalScroll = scroll(ScrollLeft, granularity, node, &stopNode,
delta.width()); | 2529 bool horizontalScroll = scroll(ScrollLeft, granularity, node, &stopNode,
delta.width()); |
| 2530 bool verticalScroll = scroll(ScrollUp, granularity, node, &stopNode, del
ta.height()); | 2530 bool verticalScroll = scroll(ScrollUp, granularity, node, &stopNode, del
ta.height()); |
| 2531 | 2531 |
| 2532 if (gestureEvent.preventPropagation()) | 2532 if (gestureEvent.preventPropagation()) |
| 2533 m_previousGestureScrolledNode = stopNode; | 2533 m_previousGestureScrolledNode = stopNode; |
| 2534 | 2534 |
| 2535 if (horizontalScroll || verticalScroll) { | 2535 if (horizontalScroll || verticalScroll) { |
| 2536 setFrameWasScrolledByUser(); | 2536 setFrameWasScrolledByUser(); |
| 2537 return true; | 2537 return true; |
| (...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3837 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal:
:parent(*curNode)) { | 3837 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal:
:parent(*curNode)) { |
| 3838 if (LayoutObject* renderer = curNode->renderer()) { | 3838 if (LayoutObject* renderer = curNode->renderer()) { |
| 3839 if (renderer->supportsTouchAction()) { | 3839 if (renderer->supportsTouchAction()) { |
| 3840 TouchAction action = renderer->style()->touchAction(); | 3840 TouchAction action = renderer->style()->touchAction(); |
| 3841 effectiveTouchAction = intersectTouchAction(action, effectiveTou
chAction); | 3841 effectiveTouchAction = intersectTouchAction(action, effectiveTou
chAction); |
| 3842 if (effectiveTouchAction == TouchActionNone) | 3842 if (effectiveTouchAction == TouchActionNone) |
| 3843 break; | 3843 break; |
| 3844 } | 3844 } |
| 3845 | 3845 |
| 3846 // If we've reached an ancestor that supports a touch action, search
no further. | 3846 // If we've reached an ancestor that supports a touch action, search
no further. |
| 3847 if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow()) | 3847 if (renderer->isBox() && toLayoutBox(renderer)->scrollsOverflow()) |
| 3848 break; | 3848 break; |
| 3849 } | 3849 } |
| 3850 } | 3850 } |
| 3851 return effectiveTouchAction; | 3851 return effectiveTouchAction; |
| 3852 } | 3852 } |
| 3853 | 3853 |
| 3854 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) | 3854 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) |
| 3855 { | 3855 { |
| 3856 m_mousePositionIsUnknown = false; | 3856 m_mousePositionIsUnknown = false; |
| 3857 m_lastKnownMousePosition = event.position(); | 3857 m_lastKnownMousePosition = event.position(); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3938 | 3938 |
| 3939 // If it's in the direction to hide the top controls, only consume when the
frame can also scroll. | 3939 // If it's in the direction to hide the top controls, only consume when the
frame can also scroll. |
| 3940 if (m_frame->view()->scrollPosition().y() < m_frame->view()->maximumScrollPo
sition().y()) | 3940 if (m_frame->view()->scrollPosition().y() < m_frame->view()->maximumScrollPo
sition().y()) |
| 3941 return true; | 3941 return true; |
| 3942 | 3942 |
| 3943 return false; | 3943 return false; |
| 3944 } | 3944 } |
| 3945 | 3945 |
| 3946 | 3946 |
| 3947 } // namespace blink | 3947 } // namespace blink |
| OLD | NEW |