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);
}
Esempio n. 2
0
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);
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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);
}