[Webkit-unassigned] [Bug 153304] Main frame scrollbars not updated on hovering when using overlay scrollbars

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 21 23:36:21 PST 2016


https://bugs.webkit.org/show_bug.cgi?id=153304

--- Comment #3 from Carlos Garcia Campos <cgarcia at igalia.com> ---
(In reply to comment #2)
> (In reply to comment #0)
> > Legacy scrollbars were fixed in r194155, but overlay scrollbars are not
> > notified when they are hovered. This is because the layer hit test in
> > RenderView::hitTest always returns true when using overlay scrollbars and we
> > are returning early in such case ignoring the
> > HitTestRequest::AllowFrameScrollbars flag. So, in case of using overlay
> > scrollbars we still need to check the RenderView scrollbars even when the
> > layer hist test succeeded unless it already contains a scrollbar.
> 
> Can you write up a set of steps that reproduce a bug that you are fixing
> here?

Sure.

1. Enable overlay scrollbars
2. Open MiniBrowser and visit any page long enough to show a scrollbar
3. Hover the scrollbar

There's no change in appearance on hover. That's from the users point of view. From the WebKit point of view, the scrollbar is not invalidated and WebKit doesn't know the mouse is over a scrollbar until you press the mouse button, because in EventHandler::handleMousePressEvent() we are manually getting the scrollbar again and only using the first hit test scrollbar if we don't get a scrollbar manually, see:

FrameView* view = m_frame.view();
Scrollbar* scrollbar = view ? view->scrollbarAtPoint(platformMouseEvent.position()) : 0;
if (!scrollbar)
    scrollbar = mouseEvent.scrollbar();

updateLastScrollbarUnderMouse(scrollbar, true);

And this is why even when the appearance is not updated on hover, you can still click and drag the scrollbar and it works. EventHandler::handleMousePressEvent() needs to do this because it doesn't use the AllowFrameScrollbars flag when doing the hit test.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160122/4d98b851/attachment-0001.html>


More information about the webkit-unassigned mailing list