| Index: Source/core/page/EventHandler.cpp
|
| diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp
|
| index 7a28dc96a1595b2563160f4a90c81bb79951cbe9..7f2bf62203808476afff59d4924d8ac3c554a3d7 100644
|
| --- a/Source/core/page/EventHandler.cpp
|
| +++ b/Source/core/page/EventHandler.cpp
|
| @@ -335,7 +335,7 @@ static void setSelectionIfNeeded(FrameSelection& selection, const VisibleSelecti
|
|
|
| static inline bool dispatchSelectStart(Node* node)
|
| {
|
| - if (!node || !node->renderer())
|
| + if (!node || !node->layoutObject())
|
| return true;
|
|
|
| return node->dispatchEvent(Event::createCancelableBubble(EventTypeNames::selectstart));
|
| @@ -379,8 +379,8 @@ void EventHandler::selectClosestWordFromHitTestResult(const HitTestResult& resul
|
| Node* innerNode = result.innerNode();
|
| VisibleSelection newSelection;
|
|
|
| - if (innerNode && innerNode->renderer()) {
|
| - VisiblePosition pos(innerNode->renderer()->positionForPoint(result.localPoint()));
|
| + if (innerNode && innerNode->layoutObject()) {
|
| + VisiblePosition pos(innerNode->layoutObject()->positionForPoint(result.localPoint()));
|
| if (pos.isNotNull()) {
|
| newSelection = VisibleSelection(pos);
|
| newSelection.expandUsingGranularity(WordGranularity);
|
| @@ -398,8 +398,8 @@ void EventHandler::selectClosestMisspellingFromHitTestResult(const HitTestResult
|
| Node* innerNode = result.innerNode();
|
| VisibleSelection newSelection;
|
|
|
| - if (innerNode && innerNode->renderer()) {
|
| - VisiblePosition pos(innerNode->renderer()->positionForPoint(result.localPoint()));
|
| + if (innerNode && innerNode->layoutObject()) {
|
| + VisiblePosition pos(innerNode->layoutObject()->positionForPoint(result.localPoint()));
|
| Position start = pos.deepEquivalent();
|
| Position end = pos.deepEquivalent();
|
| if (pos.isNotNull()) {
|
| @@ -441,10 +441,10 @@ void EventHandler::selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHit
|
|
|
| Node* innerNode = result.innerNode();
|
|
|
| - if (innerNode && innerNode->renderer() && m_mouseDownMayStartSelect) {
|
| + if (innerNode && innerNode->layoutObject() && m_mouseDownMayStartSelect) {
|
| VisibleSelection newSelection;
|
| Element* URLElement = result.hitTestResult().URLElement();
|
| - VisiblePosition pos(innerNode->renderer()->positionForPoint(result.localPoint()));
|
| + VisiblePosition pos(innerNode->layoutObject()->positionForPoint(result.localPoint()));
|
| if (pos.isNotNull() && pos.deepEquivalent().deprecatedNode()->isDescendantOf(URLElement))
|
| newSelection = VisibleSelection::selectionFromContentsOfNode(URLElement);
|
|
|
| @@ -480,11 +480,11 @@ bool EventHandler::handleMousePressEventTripleClick(const MouseEventWithHitTestR
|
| return false;
|
|
|
| Node* innerNode = event.innerNode();
|
| - if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect))
|
| + if (!(innerNode && innerNode->layoutObject() && m_mouseDownMayStartSelect))
|
| return false;
|
|
|
| VisibleSelection newSelection;
|
| - VisiblePosition pos(innerNode->renderer()->positionForPoint(event.localPoint()));
|
| + VisiblePosition pos(innerNode->layoutObject()->positionForPoint(event.localPoint()));
|
| if (pos.isNotNull()) {
|
| newSelection = VisibleSelection(pos);
|
| newSelection.expandUsingGranularity(ParagraphGranularity);
|
| @@ -505,7 +505,7 @@ bool EventHandler::handleMousePressEventSingleClick(const MouseEventWithHitTestR
|
|
|
| m_frame->document()->updateLayoutIgnorePendingStylesheets();
|
| Node* innerNode = event.innerNode();
|
| - if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect))
|
| + if (!(innerNode && innerNode->layoutObject() && m_mouseDownMayStartSelect))
|
| return false;
|
|
|
| // Extend the selection if the Shift key is down, unless the click is in a link.
|
| @@ -521,7 +521,7 @@ bool EventHandler::handleMousePressEventSingleClick(const MouseEventWithHitTestR
|
| }
|
| }
|
|
|
| - VisiblePosition visiblePos(innerNode->renderer()->positionForPoint(event.localPoint()));
|
| + VisiblePosition visiblePos(innerNode->layoutObject()->positionForPoint(event.localPoint()));
|
| if (visiblePos.isNull())
|
| visiblePos = VisiblePosition(firstPositionInOrBeforeNode(innerNode), DOWNSTREAM);
|
| Position pos = visiblePos.deepEquivalent();
|
| @@ -569,7 +569,7 @@ bool EventHandler::handleMousePressEventSingleClick(const MouseEventWithHitTestR
|
|
|
| static inline bool canMouseDownStartSelect(Node* node)
|
| {
|
| - if (!node || !node->renderer())
|
| + if (!node || !node->layoutObject())
|
| return true;
|
|
|
| if (!node->canStartSelection())
|
| @@ -672,13 +672,13 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e
|
| if (!targetNode)
|
| return false;
|
|
|
| - LayoutObject* renderer = targetNode->renderer();
|
| + LayoutObject* renderer = targetNode->layoutObject();
|
| if (!renderer) {
|
| Node* parent = NodeRenderingTraversal::parent(*targetNode);
|
| if (!parent)
|
| return false;
|
|
|
| - renderer = parent->renderer();
|
| + renderer = parent->layoutObject();
|
| if (!renderer || !renderer->isListBox())
|
| return false;
|
| }
|
| @@ -739,9 +739,9 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul
|
| // Special case to limit selection to the containing block for SVG text.
|
| // FIXME: Isn't there a better non-SVG-specific way to do this?
|
| if (Node* selectionBaseNode = newSelection.base().deprecatedNode())
|
| - if (LayoutObject* selectionBaseRenderer = selectionBaseNode->renderer())
|
| + if (LayoutObject* selectionBaseRenderer = selectionBaseNode->layoutObject())
|
| if (selectionBaseRenderer->isSVGText())
|
| - if (target->renderer()->containingBlock() != selectionBaseRenderer->containingBlock())
|
| + if (target->layoutObject()->containingBlock() != selectionBaseRenderer->containingBlock())
|
| return;
|
|
|
| if (m_selectionInitiationState == HaveNotStartedSelection && !dispatchSelectStart(target))
|
| @@ -760,13 +760,13 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul
|
| newSelection.setExtent(positionAfterNode(rootUserSelectAllForMousePressNode).downstream(CanCrossEditingBoundary));
|
| } else {
|
| // Reset base for user select all when base is inside user-select-all area and extent < base.
|
| - if (rootUserSelectAllForMousePressNode && comparePositions(target->renderer()->positionForPoint(hitTestResult.localPoint()), m_mousePressNode->renderer()->positionForPoint(m_dragStartPos)) < 0)
|
| + if (rootUserSelectAllForMousePressNode && comparePositions(target->layoutObject()->positionForPoint(hitTestResult.localPoint()), m_mousePressNode->layoutObject()->positionForPoint(m_dragStartPos)) < 0)
|
| newSelection.setBase(positionAfterNode(rootUserSelectAllForMousePressNode).downstream(CanCrossEditingBoundary));
|
|
|
| Node* rootUserSelectAllForTarget = Position::rootUserSelectAllForNode(target);
|
| - if (rootUserSelectAllForTarget && m_mousePressNode->renderer() && comparePositions(target->renderer()->positionForPoint(hitTestResult.localPoint()), m_mousePressNode->renderer()->positionForPoint(m_dragStartPos)) < 0)
|
| + if (rootUserSelectAllForTarget && m_mousePressNode->layoutObject() && comparePositions(target->layoutObject()->positionForPoint(hitTestResult.localPoint()), m_mousePressNode->layoutObject()->positionForPoint(m_dragStartPos)) < 0)
|
| newSelection.setExtent(positionBeforeNode(rootUserSelectAllForTarget).upstream(CanCrossEditingBoundary));
|
| - else if (rootUserSelectAllForTarget && m_mousePressNode->renderer())
|
| + else if (rootUserSelectAllForTarget && m_mousePressNode->layoutObject())
|
| newSelection.setExtent(positionAfterNode(rootUserSelectAllForTarget).downstream(CanCrossEditingBoundary));
|
| else
|
| newSelection.setExtent(targetPosition);
|
| @@ -809,8 +809,8 @@ bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& e
|
| VisibleSelection newSelection;
|
| Node* node = event.innerNode();
|
| bool caretBrowsing = m_frame->settings() && m_frame->settings()->caretBrowsingEnabled();
|
| - if (node && node->renderer() && (caretBrowsing || node->hasEditableStyle())) {
|
| - VisiblePosition pos = VisiblePosition(node->renderer()->positionForPoint(event.localPoint()));
|
| + if (node && node->layoutObject() && (caretBrowsing || node->hasEditableStyle())) {
|
| + VisiblePosition pos = VisiblePosition(node->layoutObject()->positionForPoint(event.localPoint()));
|
| newSelection = VisibleSelection(pos);
|
| }
|
|
|
| @@ -917,11 +917,11 @@ bool EventHandler::scroll(ScrollDirection direction, ScrollGranularity granulari
|
| if (!node)
|
| node = m_mousePressNode.get();
|
|
|
| - if (!node || !node->renderer())
|
| + if (!node || !node->layoutObject())
|
| return false;
|
|
|
| bool rootLayerScrolls = m_frame->settings() && m_frame->settings()->rootLayerScrolls();
|
| - LayoutBox* curBox = node->renderer()->enclosingBox();
|
| + LayoutBox* curBox = node->layoutObject()->enclosingBox();
|
| while (curBox && (rootLayerScrolls || !curBox->isLayoutView())) {
|
| ScrollDirection physicalDirection = toPhysicalDirection(
|
| direction, curBox->isHorizontalWritingMode(), curBox->style()->isFlippedBlocksWritingMode());
|
| @@ -972,7 +972,7 @@ static LocalFrame* subframeForTargetNode(Node* node)
|
| if (!node)
|
| return nullptr;
|
|
|
| - LayoutObject* renderer = node->renderer();
|
| + LayoutObject* renderer = node->layoutObject();
|
| if (!renderer || !renderer->isLayoutPart())
|
| return nullptr;
|
|
|
| @@ -1054,7 +1054,7 @@ OptionalCursor EventHandler::selectCursor(const HitTestResult& result)
|
| if (!node)
|
| return selectAutoCursor(result, node, iBeamCursor());
|
|
|
| - LayoutObject* renderer = node->renderer();
|
| + LayoutObject* renderer = node->layoutObject();
|
| LayoutStyle* style = renderer ? renderer->style() : nullptr;
|
|
|
| if (renderer) {
|
| @@ -1188,7 +1188,7 @@ OptionalCursor EventHandler::selectAutoCursor(const HitTestResult& result, Node*
|
| return handCursor();
|
|
|
| bool inResizer = false;
|
| - LayoutObject* renderer = node ? node->renderer() : nullptr;
|
| + LayoutObject* renderer = node ? node->layoutObject() : nullptr;
|
| if (renderer && m_frame->view()) {
|
| Layer* layer = renderer->enclosingLayer();
|
| inResizer = layer->scrollableArea() && layer->scrollableArea()->isPointInResizeControl(result.roundedPointInMainFrame(), ResizerForPointer);
|
| @@ -1285,7 +1285,7 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent)
|
| m_clickNode = mev.innerNode()->isTextNode() ? NodeRenderingTraversal::parent(*mev.innerNode()) : mev.innerNode();
|
|
|
| if (FrameView* view = m_frame->view()) {
|
| - Layer* layer = mev.innerNode()->renderer() ? mev.innerNode()->renderer()->enclosingLayer() : nullptr;
|
| + Layer* layer = mev.innerNode()->layoutObject() ? mev.innerNode()->layoutObject()->enclosingLayer() : nullptr;
|
| IntPoint p = view->windowToContents(mouseEvent.position());
|
| if (layer && layer->scrollableArea() && layer->scrollableArea()->isPointInResizeControl(p, ResizerForPointer)) {
|
| m_resizeScrollableArea = layer->scrollableArea();
|
| @@ -1336,7 +1336,7 @@ static Layer* layerForNode(Node* node)
|
| if (!node)
|
| return nullptr;
|
|
|
| - LayoutObject* renderer = node->renderer();
|
| + LayoutObject* renderer = node->layoutObject();
|
| if (!renderer)
|
| return nullptr;
|
|
|
| @@ -2013,7 +2013,7 @@ bool EventHandler::handleWheelEvent(const PlatformWheelEvent& event)
|
|
|
| if (node) {
|
| // Figure out which view to send the event to.
|
| - LayoutObject* target = node->renderer();
|
| + LayoutObject* target = node->layoutObject();
|
|
|
| if (isOverWidget && target && target->isLayoutPart()) {
|
| Widget* widget = toLayoutPart(target)->widget();
|
| @@ -2404,7 +2404,7 @@ bool EventHandler::handleGestureLongTap(const GestureEventWithHitTestResults& ta
|
|
|
| bool EventHandler::handleScrollGestureOnResizer(Node* eventTarget, const PlatformGestureEvent& gestureEvent) {
|
| if (gestureEvent.type() == PlatformEvent::GestureScrollBegin) {
|
| - Layer* layer = eventTarget->renderer() ? eventTarget->renderer()->enclosingLayer() : nullptr;
|
| + Layer* layer = eventTarget->layoutObject() ? eventTarget->layoutObject()->enclosingLayer() : nullptr;
|
| IntPoint p = m_frame->view()->windowToContents(gestureEvent.position());
|
| if (layer && layer->scrollableArea() && layer->scrollableArea()->isPointInResizeControl(p, ResizerForTouch)) {
|
| m_resizeScrollableArea = layer->scrollableArea();
|
| @@ -2451,7 +2451,7 @@ bool EventHandler::handleGestureScrollEnd(const PlatformGestureEvent& gestureEve
|
| clearGestureScrollNodes();
|
|
|
| if (node)
|
| - passScrollGestureEventToWidget(gestureEvent, node->renderer());
|
| + passScrollGestureEventToWidget(gestureEvent, node->layoutObject());
|
|
|
| return false;
|
| }
|
| @@ -2468,13 +2468,13 @@ bool EventHandler::handleGestureScrollBegin(const PlatformGestureEvent& gestureE
|
|
|
| // If there's no renderer on the node, send the event to the nearest ancestor with a renderer.
|
| // Needed for <option> and <optgroup> elements so we can touch scroll <select>s
|
| - while (m_scrollGestureHandlingNode && !m_scrollGestureHandlingNode->renderer())
|
| + while (m_scrollGestureHandlingNode && !m_scrollGestureHandlingNode->layoutObject())
|
| m_scrollGestureHandlingNode = m_scrollGestureHandlingNode->parentOrShadowHostNode();
|
|
|
| if (!m_scrollGestureHandlingNode)
|
| return false;
|
|
|
| - passScrollGestureEventToWidget(gestureEvent, m_scrollGestureHandlingNode->renderer());
|
| + passScrollGestureEventToWidget(gestureEvent, m_scrollGestureHandlingNode->layoutObject());
|
|
|
| if (m_frame->isMainFrame())
|
| m_frame->host()->topControls().scrollBegin();
|
| @@ -2499,7 +2499,7 @@ bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture
|
|
|
| Node* node = m_scrollGestureHandlingNode.get();
|
| if (node) {
|
| - LayoutObject* renderer = node->renderer();
|
| + LayoutObject* renderer = node->layoutObject();
|
| if (!renderer)
|
| return false;
|
|
|
| @@ -3317,7 +3317,7 @@ bool EventHandler::tryStartDrag(const MouseEventWithHitTestResults& event)
|
| // Check to see if this a DOM based drag, if it is get the DOM specified drag
|
| // image and offset
|
| if (dragState().m_dragType == DragSourceActionDHTML) {
|
| - if (LayoutObject* renderer = dragState().m_dragSrc->renderer()) {
|
| + if (LayoutObject* renderer = dragState().m_dragSrc->layoutObject()) {
|
| FloatPoint absPos = renderer->localToAbsolute(FloatPoint(), UseTransforms);
|
| IntSize delta = m_mouseDownPos - roundedIntPoint(absPos);
|
| dragState().m_dragDataTransfer->setDragImageElement(dragState().m_dragSrc.get(), IntPoint(delta));
|
| @@ -3484,7 +3484,7 @@ void EventHandler::defaultEscapeEventHandler(KeyboardEvent* event)
|
| void EventHandler::capsLockStateMayHaveChanged()
|
| {
|
| if (Element* element = m_frame->document()->focusedElement()) {
|
| - if (LayoutObject* r = element->renderer()) {
|
| + if (LayoutObject* r = element->layoutObject()) {
|
| if (r->isTextField())
|
| toLayoutTextControlSingleLine(r)->capsLockStateMayHaveChanged();
|
| }
|
| @@ -3824,7 +3824,7 @@ TouchAction EventHandler::computeEffectiveTouchAction(const Node& node)
|
| // and exclude any prohibited actions.
|
| TouchAction effectiveTouchAction = TouchActionAuto;
|
| for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal::parent(*curNode)) {
|
| - if (LayoutObject* renderer = curNode->renderer()) {
|
| + if (LayoutObject* renderer = curNode->layoutObject()) {
|
| if (renderer->supportsTouchAction()) {
|
| TouchAction action = renderer->style()->touchAction();
|
| effectiveTouchAction = intersectTouchAction(action, effectiveTouchAction);
|
| @@ -3856,7 +3856,7 @@ bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults& m
|
| IntPoint p = m_frame->view()->windowToContents(mev.event().position());
|
| if (m_frame->selection().contains(p)) {
|
| VisiblePosition visiblePos(
|
| - mev.innerNode()->renderer()->positionForPoint(mev.localPoint()));
|
| + mev.innerNode()->layoutObject()->positionForPoint(mev.localPoint()));
|
| VisibleSelection newSelection(visiblePos);
|
| m_frame->selection().setSelection(newSelection);
|
| }
|
|
|