[webkit-changes] [WebKit/WebKit] fe975b: Scrolling leaves artifacts at the right side of th...

Fujii Hironori noreply at github.com
Tue Jun 18 21:00:36 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fe975b3d7ff6cace8562ce9f17472dcedfa14e4e
      https://github.com/WebKit/WebKit/commit/fe975b3d7ff6cace8562ce9f17472dcedfa14e4e
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M Source/WebCore/platform/ScrollView.cpp
    M Source/WebCore/platform/graphics/IntRect.h

  Log Message:
  -----------
  Scrolling leaves artifacts at the right side of the window if the window has a left vertical overlay scrollbar in RTL in non-compositing mode
https://bugs.webkit.org/show_bug.cgi?id=160359

Reviewed by Don Olmstead.

ScrollView::rectToCopyOnScroll returns a rect to copy on scroll as the
name implies. However, it didn't take the left vertical overlay
scrollbar in RTL. It always assumed the vertical scroll bar was at the
right side of the window. As the result, the area of the right
scrollbar wasn't updated on scrolling even when the vertical scrollbar
was actually at the left.

If a windows has a vertical overlay scrollbar at the left side of the
window in RTL, rectToCopyOnScroll shouldn't exclude area of the right
scrollbar.

This problem was reprodusible with GTK, Windows and PlayStation ports
which still support non-compositing mode. But with Mac WK1 and WK2.
Mac WK1 is still supporting non-compositing mode, but it shows a
scrollbar always on the right side of the window. So it's not
reproducible with Mac WK1.

Added shiftMaxXEdgeBy and shiftMaxYEdgeBy methods to IntRect class as
same as FloatRect class has.

* Source/WebCore/platform/ScrollView.cpp:
(WebCore::ScrollView::rectToCopyOnScroll const):
* WebCore/platform/graphics/IntRect.h
(WebCore::IntRect::shiftMaxXEdgeBy): Added.
(WebCore::IntRect::shiftMaxYEdgeBy): Added.

Canonical link: https://commits.webkit.org/280155@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list