void RenderTextControl::hitInnerTextElement(HitTestResult& result, int xPos, int yPos, int tx, int ty) { result.setInnerNode(m_innerText.get()); result.setInnerNonSharedNode(m_innerText.get()); result.setLocalPoint(IntPoint(xPos - tx - x() - m_innerText->renderBox()->x(), yPos - ty - y() - m_innerText->renderBox()->y())); }
void RenderTextControl::hitInnerTextElement(HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset) { LayoutPoint adjustedLocation = accumulatedOffset + location(); HTMLElement* innerText = innerTextElement(); result.setInnerNode(innerText); result.setInnerNonSharedNode(innerText); result.setLocalPoint(pointInContainer - toLayoutSize(adjustedLocation + innerText->renderBox()->location())); }
void RenderTextControl::hitInnerTextElement(HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset) { TextControlInnerTextElement* innerText = innerTextElement(); if (!innerText->renderer()) return; LayoutPoint adjustedLocation = accumulatedOffset + location(); LayoutPoint localPoint = pointInContainer - toLayoutSize(adjustedLocation + innerText->renderBox()->location()) + scrolledContentOffset(); result.setInnerNode(innerText); result.setInnerNonSharedNode(innerText); result.setLocalPoint(localPoint); }
void RenderView::updateHitTestResult(HitTestResult& result, const IntPoint& point) { if (result.innerNode()) return; Node* node = document()->documentElement(); if (node) { result.setInnerNode(node); if (!result.innerNonSharedNode()) result.setInnerNonSharedNode(node); result.setLocalPoint(point); } }
void RenderTextControl::hitInnerEditorElement(HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset) { HTMLElement* innerEditor = innerEditorElement(); if (!innerEditor->renderer()) return; LayoutPoint adjustedLocation = accumulatedOffset + location(); LayoutPoint localPoint = pointInContainer - toLayoutSize(adjustedLocation + innerEditor->renderBox()->location()); if (hasOverflowClip()) localPoint += scrolledContentOffset(); result.setInnerNode(innerEditor); result.setInnerNonSharedNode(innerEditor); result.setLocalPoint(localPoint); }
bool RenderFrameSet::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int x, int y, int tx, int ty, HitTestAction action) { if (action != HitTestForeground) return false; bool inside = RenderContainer::nodeAtPoint(request, result, x, y, tx, ty, action) || m_isResizing || canResize(IntPoint(x, y)); if (inside && frameSet()->noResize() && !request.readonly && !result.innerNode()) { result.setInnerNode(node()); result.setInnerNonSharedNode(node()); } return inside || m_isChildResizing; }
void RenderView::updateHitTestResult(HitTestResult& result, const LayoutPoint& point) { if (result.innerNode()) return; Node* node = document()->documentElement(); if (node) { result.setInnerNode(node); if (!result.innerNonSharedNode()) result.setInnerNonSharedNode(node); LayoutPoint adjustedPoint = point; offsetForContents(adjustedPoint); result.setLocalPoint(adjustedPoint); } }
bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction) { bool inside = RenderReplaced::nodeAtPoint(request, result, _x, _y, _tx, _ty, hitTestAction); if (inside && element()) { int tx = _tx + m_x; int ty = _ty + m_y; HTMLMapElement* map = imageMap(); if (map) { // we're a client side image map inside = map->mapMouseEvent(_x - tx, _y - ty, IntSize(contentWidth(), contentHeight()), result); result.setInnerNonSharedNode(element()); } } return inside; }
bool RenderListBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int x, int y, int tx, int ty, HitTestAction hitTestAction) { if (!RenderBlock::nodeAtPoint(request, result, x, y, tx, ty, hitTestAction)) return false; const Vector<Element*>& listItems = toSelectElement(static_cast<Element*>(node()))->listItems(); int size = numItems(); tx += this->x(); ty += this->y(); for (int i = 0; i < size; ++i) { if (itemBoundingBoxRect(tx, ty, i).contains(x, y)) { if (Element* node = listItems[i]) { result.setInnerNode(node); if (!result.innerNonSharedNode()) result.setInnerNonSharedNode(node); result.setLocalPoint(IntPoint(x - tx, y - ty)); break; } } } return true; }
bool RenderListBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction) { if (!RenderBlock::nodeAtPoint(request, result, pointInContainer, accumulatedOffset, hitTestAction)) return false; const Vector<HTMLElement*>& listItems = toHTMLSelectElement(node())->listItems(); int size = numItems(); LayoutPoint adjustedLocation = accumulatedOffset + location(); for (int i = 0; i < size; ++i) { if (itemBoundingBoxRect(adjustedLocation, i).contains(pointInContainer)) { if (Element* node = listItems[i]) { result.setInnerNode(node); if (!result.innerNonSharedNode()) result.setInnerNonSharedNode(node); result.setLocalPoint(pointInContainer - toLayoutSize(adjustedLocation)); break; } } } return true; }