bool RenderTextControlSingleLine::logicalScroll(ScrollLogicalDirection direction, ScrollGranularity granularity, float multiplier, Element** stopElement) { RenderLayer* layer = innerTextElement()->renderer()->layer(); if (layer && layer->scroll(logicalToPhysical(direction, style().isHorizontalWritingMode(), style().isFlippedBlocksWritingMode()), granularity, multiplier)) return true; return RenderBlockFlow::logicalScroll(direction, granularity, multiplier, stopElement); }
bool RenderTextControlSingleLine::scroll(ScrollDirection direction, ScrollGranularity granularity, float multiplier, Node** stopNode) { RenderLayer* layer = innerTextElement()->renderBox()->layer(); if (layer && layer->scroll(direction, granularity, multiplier)) return true; return RenderBlock::scroll(direction, granularity, multiplier, stopNode); }
bool RenderTextControlSingleLine::scroll(ScrollDirection direction, ScrollGranularity granularity, float multiplier, Element** stopElement, RenderBox* startBox, const IntPoint& wheelEventAbsolutePoint) { RenderTextControlInnerBlock* renderer = innerTextElement()->renderer(); if (!renderer) return false; RenderLayer* layer = renderer->layer(); if (layer && layer->scroll(direction, granularity, multiplier)) return true; return RenderBlockFlow::scroll(direction, granularity, multiplier, stopElement, startBox, wheelEventAbsolutePoint); }
QT_END_NAMESPACE static bool webframe_scrollOverflow(WebCore::Frame* frame, int dx, int dy, const QPoint& pos) { if (!frame || !frame->document() || !frame->view() || !frame->eventHandler()) return false; QPoint contentsPos = frame->view()->windowToContents(pos); Node* node = frame->document()->elementFromPoint(contentsPos.x(), contentsPos.y()); if (!node) return false; RenderObject* renderer = node->renderer(); if (!renderer) return false; if (renderer->isListBox()) return false; RenderLayer* renderLayer = renderer->enclosingLayer(); if (!renderLayer) return false; bool scrolledHorizontal = false; bool scrolledVertical = false; if (dx > 0) scrolledHorizontal = renderLayer->scroll(ScrollRight, ScrollByPixel, dx); else if (dx < 0) scrolledHorizontal = renderLayer->scroll(ScrollLeft, ScrollByPixel, qAbs(dx)); if (dy > 0) scrolledVertical = renderLayer->scroll(ScrollDown, ScrollByPixel, dy); else if (dy < 0) scrolledVertical = renderLayer->scroll(ScrollUp, ScrollByPixel, qAbs(dy)); return (scrolledHorizontal || scrolledVertical); }
static bool webframe_scrollOverflow(WebCore::Frame* frame, int dx, int dy) { if (!frame || !frame->document() || !frame->eventHandler()) return false; Node* node = frame->document()->focusedNode(); if (!node) node = frame->document()->elementFromPoint(frame->eventHandler()->currentMousePosition().x(), frame->eventHandler()->currentMousePosition().y()); if (!node) return false; RenderObject* renderer = node->renderer(); if (!renderer) return false; if (renderer->isListBox()) return false; RenderLayer* renderLayer = renderer->enclosingLayer(); if (!renderLayer) return false; bool scrolledHorizontal = false; bool scrolledVertical = false; if (dx > 0) scrolledHorizontal = renderLayer->scroll(ScrollRight, ScrollByPixel, dx); else if (dx < 0) scrolledHorizontal = renderLayer->scroll(ScrollLeft, ScrollByPixel, qAbs(dx)); if (dy > 0) scrolledVertical = renderLayer->scroll(ScrollDown, ScrollByPixel, dy); else if (dy < 0) scrolledVertical = renderLayer->scroll(ScrollUp, ScrollByPixel, qAbs(dy)); return (scrolledHorizontal || scrolledVertical); }