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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 if (!m_mousePressed) | 667 if (!m_mousePressed) |
668 return false; | 668 return false; |
669 | 669 |
670 if (handleDrag(event, DragInitiator::Mouse)) | 670 if (handleDrag(event, DragInitiator::Mouse)) |
671 return true; | 671 return true; |
672 | 672 |
673 Node* targetNode = event.innerNode(); | 673 Node* targetNode = event.innerNode(); |
674 if (!targetNode) | 674 if (!targetNode) |
675 return false; | 675 return false; |
676 | 676 |
677 RenderObject* renderer = targetNode->renderer(); | 677 LayoutObject* renderer = targetNode->renderer(); |
678 if (!renderer) { | 678 if (!renderer) { |
679 Node* parent = NodeRenderingTraversal::parent(*targetNode); | 679 Node* parent = NodeRenderingTraversal::parent(*targetNode); |
680 if (!parent) | 680 if (!parent) |
681 return false; | 681 return false; |
682 | 682 |
683 renderer = parent->renderer(); | 683 renderer = parent->renderer(); |
684 if (!renderer || !renderer->isListBox()) | 684 if (!renderer || !renderer->isListBox()) |
685 return false; | 685 return false; |
686 } | 686 } |
687 | 687 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 if (targetPosition.isNull()) | 734 if (targetPosition.isNull()) |
735 return; | 735 return; |
736 | 736 |
737 // Restart the selection if this is the first mouse move. This work is usual
ly | 737 // Restart the selection if this is the first mouse move. This work is usual
ly |
738 // done in handleMousePressEvent, but not if the mouse press was on an exist
ing selection. | 738 // done in handleMousePressEvent, but not if the mouse press was on an exist
ing selection. |
739 VisibleSelection newSelection = m_frame->selection().selection(); | 739 VisibleSelection newSelection = m_frame->selection().selection(); |
740 | 740 |
741 // Special case to limit selection to the containing block for SVG text. | 741 // Special case to limit selection to the containing block for SVG text. |
742 // FIXME: Isn't there a better non-SVG-specific way to do this? | 742 // FIXME: Isn't there a better non-SVG-specific way to do this? |
743 if (Node* selectionBaseNode = newSelection.base().deprecatedNode()) | 743 if (Node* selectionBaseNode = newSelection.base().deprecatedNode()) |
744 if (RenderObject* selectionBaseRenderer = selectionBaseNode->renderer()) | 744 if (LayoutObject* selectionBaseRenderer = selectionBaseNode->renderer()) |
745 if (selectionBaseRenderer->isSVGText()) | 745 if (selectionBaseRenderer->isSVGText()) |
746 if (target->renderer()->containingBlock() != selectionBaseRender
er->containingBlock()) | 746 if (target->renderer()->containingBlock() != selectionBaseRender
er->containingBlock()) |
747 return; | 747 return; |
748 | 748 |
749 if (m_selectionInitiationState == HaveNotStartedSelection && !dispatchSelect
Start(target)) | 749 if (m_selectionInitiationState == HaveNotStartedSelection && !dispatchSelect
Start(target)) |
750 return; | 750 return; |
751 | 751 |
752 if (m_selectionInitiationState != ExtendedSelection) { | 752 if (m_selectionInitiationState != ExtendedSelection) { |
753 // Always extend selection here because it's caused by a mouse drag | 753 // Always extend selection here because it's caused by a mouse drag |
754 m_selectionInitiationState = ExtendedSelection; | 754 m_selectionInitiationState = ExtendedSelection; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 if (event.event().button() == MiddleButton && !event.isOverLink()) { | 828 if (event.event().button() == MiddleButton && !event.isOverLink()) { |
829 // Ignore handled, since we want to paste to where the caret was placed
anyway. | 829 // Ignore handled, since we want to paste to where the caret was placed
anyway. |
830 handled = handlePasteGlobalSelection(event.event()) || handled; | 830 handled = handlePasteGlobalSelection(event.event()) || handled; |
831 } | 831 } |
832 | 832 |
833 return handled; | 833 return handled; |
834 } | 834 } |
835 | 835 |
836 #if OS(WIN) | 836 #if OS(WIN) |
837 | 837 |
838 void EventHandler::startPanScrolling(RenderObject* 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(toRenderBox(renderer), lastKnownMousePosition(
)); |
846 invalidateClick(); | 846 invalidateClick(); |
847 } | 847 } |
848 | 848 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
970 IntPoint EventHandler::lastKnownMousePosition() const | 970 IntPoint EventHandler::lastKnownMousePosition() const |
971 { | 971 { |
972 return m_lastKnownMousePosition; | 972 return m_lastKnownMousePosition; |
973 } | 973 } |
974 | 974 |
975 static LocalFrame* subframeForTargetNode(Node* node) | 975 static LocalFrame* subframeForTargetNode(Node* node) |
976 { | 976 { |
977 if (!node) | 977 if (!node) |
978 return nullptr; | 978 return nullptr; |
979 | 979 |
980 RenderObject* renderer = node->renderer(); | 980 LayoutObject* renderer = node->renderer(); |
981 if (!renderer || !renderer->isRenderPart()) | 981 if (!renderer || !renderer->isRenderPart()) |
982 return nullptr; | 982 return nullptr; |
983 | 983 |
984 // FIXME: This explicit check is needed only until RemoteFrames have RemoteF
rameViews. | 984 // FIXME: This explicit check is needed only until RemoteFrames have RemoteF
rameViews. |
985 if (isHTMLFrameElementBase(node) && toHTMLFrameElementBase(node)->contentFra
me() && toHTMLFrameElementBase(node)->contentFrame()->isRemoteFrameTemporary()) | 985 if (isHTMLFrameElementBase(node) && toHTMLFrameElementBase(node)->contentFra
me() && toHTMLFrameElementBase(node)->contentFrame()->isRemoteFrameTemporary()) |
986 return nullptr; | 986 return nullptr; |
987 | 987 |
988 Widget* widget = toRenderPart(renderer)->widget(); | 988 Widget* widget = toRenderPart(renderer)->widget(); |
989 if (!widget || !widget->isFrameView()) | 989 if (!widget || !widget->isFrameView()) |
990 return nullptr; | 990 return nullptr; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1056 return NoCursorChange; | 1056 return NoCursorChange; |
1057 #if OS(WIN) | 1057 #if OS(WIN) |
1058 if (panScrollInProgress()) | 1058 if (panScrollInProgress()) |
1059 return NoCursorChange; | 1059 return NoCursorChange; |
1060 #endif | 1060 #endif |
1061 | 1061 |
1062 Node* node = result.innerPossiblyPseudoNode(); | 1062 Node* node = result.innerPossiblyPseudoNode(); |
1063 if (!node) | 1063 if (!node) |
1064 return selectAutoCursor(result, node, iBeamCursor()); | 1064 return selectAutoCursor(result, node, iBeamCursor()); |
1065 | 1065 |
1066 RenderObject* renderer = node->renderer(); | 1066 LayoutObject* renderer = node->renderer(); |
1067 RenderStyle* style = renderer ? renderer->style() : nullptr; | 1067 RenderStyle* style = renderer ? renderer->style() : nullptr; |
1068 | 1068 |
1069 if (renderer) { | 1069 if (renderer) { |
1070 Cursor overrideCursor; | 1070 Cursor overrideCursor; |
1071 switch (renderer->getCursor(roundedIntPoint(result.localPoint()), overri
deCursor)) { | 1071 switch (renderer->getCursor(roundedIntPoint(result.localPoint()), overri
deCursor)) { |
1072 case SetCursorBasedOnStyle: | 1072 case SetCursorBasedOnStyle: |
1073 break; | 1073 break; |
1074 case SetCursor: | 1074 case SetCursor: |
1075 return overrideCursor; | 1075 return overrideCursor; |
1076 case DoNotSetCursor: | 1076 case DoNotSetCursor: |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1190 } | 1190 } |
1191 | 1191 |
1192 OptionalCursor EventHandler::selectAutoCursor(const HitTestResult& result, Node*
node, const Cursor& iBeam) | 1192 OptionalCursor EventHandler::selectAutoCursor(const HitTestResult& result, Node*
node, const Cursor& iBeam) |
1193 { | 1193 { |
1194 bool editable = (node && node->hasEditableStyle()); | 1194 bool editable = (node && node->hasEditableStyle()); |
1195 | 1195 |
1196 if (useHandCursor(node, result.isOverLink())) | 1196 if (useHandCursor(node, result.isOverLink())) |
1197 return handCursor(); | 1197 return handCursor(); |
1198 | 1198 |
1199 bool inResizer = false; | 1199 bool inResizer = false; |
1200 RenderObject* renderer = node ? node->renderer() : nullptr; | 1200 LayoutObject* renderer = node ? node->renderer() : nullptr; |
1201 if (renderer && m_frame->view()) { | 1201 if (renderer && m_frame->view()) { |
1202 Layer* layer = renderer->enclosingLayer(); | 1202 Layer* layer = renderer->enclosingLayer(); |
1203 inResizer = layer->scrollableArea() && layer->scrollableArea()->isPointI
nResizeControl(result.roundedPointInMainFrame(), ResizerForPointer); | 1203 inResizer = layer->scrollableArea() && layer->scrollableArea()->isPointI
nResizeControl(result.roundedPointInMainFrame(), ResizerForPointer); |
1204 } | 1204 } |
1205 | 1205 |
1206 // During selection, use an I-beam no matter what we're over. | 1206 // During selection, use an I-beam no matter what we're over. |
1207 // If a drag may be starting or we're capturing mouse events for a particula
r node, don't treat this as a selection. | 1207 // If a drag may be starting or we're capturing mouse events for a particula
r node, don't treat this as a selection. |
1208 if (m_mousePressed && m_mouseDownMayStartSelect | 1208 if (m_mousePressed && m_mouseDownMayStartSelect |
1209 && !m_mouseDownMayStartDrag | 1209 && !m_mouseDownMayStartDrag |
1210 && m_frame->selection().isCaretOrRange() | 1210 && m_frame->selection().isCaretOrRange() |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1342 } | 1342 } |
1343 | 1343 |
1344 return swallowEvent; | 1344 return swallowEvent; |
1345 } | 1345 } |
1346 | 1346 |
1347 static Layer* layerForNode(Node* node) | 1347 static Layer* layerForNode(Node* node) |
1348 { | 1348 { |
1349 if (!node) | 1349 if (!node) |
1350 return nullptr; | 1350 return nullptr; |
1351 | 1351 |
1352 RenderObject* renderer = node->renderer(); | 1352 LayoutObject* renderer = node->renderer(); |
1353 if (!renderer) | 1353 if (!renderer) |
1354 return nullptr; | 1354 return nullptr; |
1355 | 1355 |
1356 Layer* layer = renderer->enclosingLayer(); | 1356 Layer* layer = renderer->enclosingLayer(); |
1357 if (!layer) | 1357 if (!layer) |
1358 return nullptr; | 1358 return nullptr; |
1359 | 1359 |
1360 return layer; | 1360 return layer; |
1361 } | 1361 } |
1362 | 1362 |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2019 if (m_latchedWheelEventNode) | 2019 if (m_latchedWheelEventNode) |
2020 m_latchedWheelEventNode = nullptr; | 2020 m_latchedWheelEventNode = nullptr; |
2021 if (m_previousWheelScrolledNode) | 2021 if (m_previousWheelScrolledNode) |
2022 m_previousWheelScrolledNode = nullptr; | 2022 m_previousWheelScrolledNode = nullptr; |
2023 | 2023 |
2024 isOverWidget = result.isOverWidget(); | 2024 isOverWidget = result.isOverWidget(); |
2025 } | 2025 } |
2026 | 2026 |
2027 if (node) { | 2027 if (node) { |
2028 // Figure out which view to send the event to. | 2028 // Figure out which view to send the event to. |
2029 RenderObject* target = node->renderer(); | 2029 LayoutObject* target = node->renderer(); |
2030 | 2030 |
2031 if (isOverWidget && target && target->isRenderPart()) { | 2031 if (isOverWidget && target && target->isRenderPart()) { |
2032 Widget* widget = toRenderPart(target)->widget(); | 2032 Widget* widget = toRenderPart(target)->widget(); |
2033 if (widget && passWheelEventToWidget(event, *widget)) | 2033 if (widget && passWheelEventToWidget(event, *widget)) |
2034 RETURN_WHEEL_EVENT_HANDLED(); | 2034 RETURN_WHEEL_EVENT_HANDLED(); |
2035 } | 2035 } |
2036 | 2036 |
2037 if (node && !node->dispatchWheelEvent(event)) | 2037 if (node && !node->dispatchWheelEvent(event)) |
2038 RETURN_WHEEL_EVENT_HANDLED(); | 2038 RETURN_WHEEL_EVENT_HANDLED(); |
2039 } | 2039 } |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2432 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { | 2432 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { |
2433 m_resizeScrollableArea->setInResizeMode(false); | 2433 m_resizeScrollableArea->setInResizeMode(false); |
2434 m_resizeScrollableArea = nullptr; | 2434 m_resizeScrollableArea = nullptr; |
2435 return false; | 2435 return false; |
2436 } | 2436 } |
2437 } | 2437 } |
2438 | 2438 |
2439 return false; | 2439 return false; |
2440 } | 2440 } |
2441 | 2441 |
2442 bool EventHandler::passScrollGestureEventToWidget(const PlatformGestureEvent& ge
stureEvent, RenderObject* renderer) | 2442 bool EventHandler::passScrollGestureEventToWidget(const PlatformGestureEvent& ge
stureEvent, LayoutObject* renderer) |
2443 { | 2443 { |
2444 ASSERT(gestureEvent.isScrollEvent()); | 2444 ASSERT(gestureEvent.isScrollEvent()); |
2445 | 2445 |
2446 if (!m_lastGestureScrollOverWidget) | 2446 if (!m_lastGestureScrollOverWidget) |
2447 return false; | 2447 return false; |
2448 | 2448 |
2449 if (!renderer || !renderer->isRenderPart()) | 2449 if (!renderer || !renderer->isRenderPart()) |
2450 return false; | 2450 return false; |
2451 | 2451 |
2452 Widget* widget = toRenderPart(renderer)->widget(); | 2452 Widget* widget = toRenderPart(renderer)->widget(); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2500 bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture
Event) | 2500 bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture
Event) |
2501 { | 2501 { |
2502 ASSERT(gestureEvent.type() == PlatformEvent::GestureScrollUpdate); | 2502 ASSERT(gestureEvent.type() == PlatformEvent::GestureScrollUpdate); |
2503 | 2503 |
2504 FloatSize delta(gestureEvent.deltaX(), gestureEvent.deltaY()); | 2504 FloatSize delta(gestureEvent.deltaX(), gestureEvent.deltaY()); |
2505 if (delta.isZero()) | 2505 if (delta.isZero()) |
2506 return false; | 2506 return false; |
2507 | 2507 |
2508 Node* node = m_scrollGestureHandlingNode.get(); | 2508 Node* node = m_scrollGestureHandlingNode.get(); |
2509 if (node) { | 2509 if (node) { |
2510 RenderObject* renderer = node->renderer(); | 2510 LayoutObject* renderer = node->renderer(); |
2511 if (!renderer) | 2511 if (!renderer) |
2512 return false; | 2512 return false; |
2513 | 2513 |
2514 RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); | 2514 RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); |
2515 | 2515 |
2516 Node* stopNode = nullptr; | 2516 Node* stopNode = nullptr; |
2517 | 2517 |
2518 // Try to send the event to the correct view. | 2518 // Try to send the event to the correct view. |
2519 if (passScrollGestureEventToWidget(gestureEvent, renderer)) { | 2519 if (passScrollGestureEventToWidget(gestureEvent, renderer)) { |
2520 if (gestureEvent.preventPropagation()) | 2520 if (gestureEvent.preventPropagation()) |
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3303 { | 3303 { |
3304 // The DataTransfer would only be non-empty if we missed a dragEnd. | 3304 // The DataTransfer would only be non-empty if we missed a dragEnd. |
3305 // Clear it anyway, just to make sure it gets numbified. | 3305 // Clear it anyway, just to make sure it gets numbified. |
3306 clearDragDataTransfer(); | 3306 clearDragDataTransfer(); |
3307 | 3307 |
3308 dragState().m_dragDataTransfer = createDraggingDataTransfer(); | 3308 dragState().m_dragDataTransfer = createDraggingDataTransfer(); |
3309 | 3309 |
3310 // Check to see if this a DOM based drag, if it is get the DOM specified dra
g | 3310 // Check to see if this a DOM based drag, if it is get the DOM specified dra
g |
3311 // image and offset | 3311 // image and offset |
3312 if (dragState().m_dragType == DragSourceActionDHTML) { | 3312 if (dragState().m_dragType == DragSourceActionDHTML) { |
3313 if (RenderObject* renderer = dragState().m_dragSrc->renderer()) { | 3313 if (LayoutObject* renderer = dragState().m_dragSrc->renderer()) { |
3314 FloatPoint absPos = renderer->localToAbsolute(FloatPoint(), UseTrans
forms); | 3314 FloatPoint absPos = renderer->localToAbsolute(FloatPoint(), UseTrans
forms); |
3315 IntSize delta = m_mouseDownPos - roundedIntPoint(absPos); | 3315 IntSize delta = m_mouseDownPos - roundedIntPoint(absPos); |
3316 dragState().m_dragDataTransfer->setDragImageElement(dragState().m_dr
agSrc.get(), IntPoint(delta)); | 3316 dragState().m_dragDataTransfer->setDragImageElement(dragState().m_dr
agSrc.get(), IntPoint(delta)); |
3317 } else { | 3317 } else { |
3318 // The renderer has disappeared, this can happen if the onStartDrag
handler has hidden | 3318 // The renderer has disappeared, this can happen if the onStartDrag
handler has hidden |
3319 // the element in some way. In this case we just kill the drag. | 3319 // the element in some way. In this case we just kill the drag. |
3320 return false; | 3320 return false; |
3321 } | 3321 } |
3322 } | 3322 } |
3323 | 3323 |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3470 | 3470 |
3471 void EventHandler::defaultEscapeEventHandler(KeyboardEvent* event) | 3471 void EventHandler::defaultEscapeEventHandler(KeyboardEvent* event) |
3472 { | 3472 { |
3473 if (HTMLDialogElement* dialog = m_frame->document()->activeModalDialog()) | 3473 if (HTMLDialogElement* dialog = m_frame->document()->activeModalDialog()) |
3474 dialog->dispatchEvent(Event::createCancelable(EventTypeNames::cancel)); | 3474 dialog->dispatchEvent(Event::createCancelable(EventTypeNames::cancel)); |
3475 } | 3475 } |
3476 | 3476 |
3477 void EventHandler::capsLockStateMayHaveChanged() | 3477 void EventHandler::capsLockStateMayHaveChanged() |
3478 { | 3478 { |
3479 if (Element* element = m_frame->document()->focusedElement()) { | 3479 if (Element* element = m_frame->document()->focusedElement()) { |
3480 if (RenderObject* r = element->renderer()) { | 3480 if (LayoutObject* r = element->renderer()) { |
3481 if (r->isTextField()) | 3481 if (r->isTextField()) |
3482 toRenderTextControlSingleLine(r)->capsLockStateMayHaveChanged(); | 3482 toRenderTextControlSingleLine(r)->capsLockStateMayHaveChanged(); |
3483 } | 3483 } |
3484 } | 3484 } |
3485 } | 3485 } |
3486 | 3486 |
3487 void EventHandler::setFrameWasScrolledByUser() | 3487 void EventHandler::setFrameWasScrolledByUser() |
3488 { | 3488 { |
3489 if (FrameView* view = m_frame->view()) | 3489 if (FrameView* view = m_frame->view()) |
3490 view->setWasScrolledByUser(true); | 3490 view->setWasScrolledByUser(true); |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3810 return action1 & action2; | 3810 return action1 & action2; |
3811 } | 3811 } |
3812 | 3812 |
3813 TouchAction EventHandler::computeEffectiveTouchAction(const Node& node) | 3813 TouchAction EventHandler::computeEffectiveTouchAction(const Node& node) |
3814 { | 3814 { |
3815 // Start by permitting all actions, then walk the elements supporting | 3815 // Start by permitting all actions, then walk the elements supporting |
3816 // touch-action from the target node up to the nearest scrollable ancestor | 3816 // touch-action from the target node up to the nearest scrollable ancestor |
3817 // and exclude any prohibited actions. | 3817 // and exclude any prohibited actions. |
3818 TouchAction effectiveTouchAction = TouchActionAuto; | 3818 TouchAction effectiveTouchAction = TouchActionAuto; |
3819 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal:
:parent(*curNode)) { | 3819 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal:
:parent(*curNode)) { |
3820 if (RenderObject* renderer = curNode->renderer()) { | 3820 if (LayoutObject* renderer = curNode->renderer()) { |
3821 if (renderer->supportsTouchAction()) { | 3821 if (renderer->supportsTouchAction()) { |
3822 TouchAction action = renderer->style()->touchAction(); | 3822 TouchAction action = renderer->style()->touchAction(); |
3823 effectiveTouchAction = intersectTouchAction(action, effectiveTou
chAction); | 3823 effectiveTouchAction = intersectTouchAction(action, effectiveTou
chAction); |
3824 if (effectiveTouchAction == TouchActionNone) | 3824 if (effectiveTouchAction == TouchActionNone) |
3825 break; | 3825 break; |
3826 } | 3826 } |
3827 | 3827 |
3828 // If we've reached an ancestor that supports a touch action, search
no further. | 3828 // If we've reached an ancestor that supports a touch action, search
no further. |
3829 if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow()) | 3829 if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow()) |
3830 break; | 3830 break; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3906 unsigned EventHandler::accessKeyModifiers() | 3906 unsigned EventHandler::accessKeyModifiers() |
3907 { | 3907 { |
3908 #if OS(MACOSX) | 3908 #if OS(MACOSX) |
3909 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; | 3909 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; |
3910 #else | 3910 #else |
3911 return PlatformEvent::AltKey; | 3911 return PlatformEvent::AltKey; |
3912 #endif | 3912 #endif |
3913 } | 3913 } |
3914 | 3914 |
3915 } // namespace blink | 3915 } // namespace blink |
OLD | NEW |