Changeset 290545 in webkit
- Timestamp:
- Feb 25, 2022 11:58:41 PM (5 months ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar-expected-mismatch.html (added)
-
LayoutTests/fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/graphics/GraphicsLayer.cpp (modified) (1 diff)
-
Source/WebCore/platform/graphics/GraphicsLayer.h (modified) (2 diffs)
-
Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (modified) (1 diff)
-
Source/WebCore/rendering/RenderLayerBacking.cpp (modified) (1 diff)
-
Source/WebCore/rendering/RenderLayerCompositor.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r290531 r290545 1 2022-02-25 Simon Fraser <simon.fraser@apple.com> 2 3 Scrollbars disappear when very long or wide 4 https://bugs.webkit.org/show_bug.cgi?id=237232 5 6 Reviewed by Tim Horton. 7 8 * fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar-expected-mismatch.html: Added. 9 * fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html: Added. 10 1 11 2022-02-25 Chris Dumez <cdumez@apple.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r290542 r290545 1 2022-02-25 Simon Fraser <simon.fraser@apple.com> 2 3 Scrollbars disappear when very long or wide 4 https://bugs.webkit.org/show_bug.cgi?id=237232 5 <rdar://17540446> 6 7 Reviewed by Tim Horton. 8 9 Our tiling logic does not play nicely with AppKit's NSScrollerImps, probably because we 10 inadvertently unparent its layers. 11 12 Fix by disallowing GraphicsLayers for scrollbars from going into tiled mode, for 13 both root and overflow scrollbars. 14 15 Test: fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html 16 17 * platform/graphics/GraphicsLayer.cpp: 18 (WebCore::GraphicsLayer::GraphicsLayer): 19 * platform/graphics/GraphicsLayer.h: 20 (WebCore::GraphicsLayer::setAllowsTiling): 21 (WebCore::GraphicsLayer::allowsTiling const): 22 * platform/graphics/ca/GraphicsLayerCA.cpp: 23 (WebCore::GraphicsLayerCA::requiresTiledLayer const): 24 * rendering/RenderLayerBacking.cpp: 25 (WebCore::RenderLayerBacking::updateOverflowControlsLayers): 26 * rendering/RenderLayerCompositor.cpp: 27 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): 28 1 29 2022-02-25 Said Abou-Hallawa <said@apple.com> 2 30 -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
r290329 r290545 144 144 , m_acceleratesDrawing(false) 145 145 , m_usesDisplayListDrawing(false) 146 , m_allowsTiling(true) 146 147 , m_appliesPageScale(false) 147 148 , m_showDebugBorder(false) -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.h
r289032 r290545 590 590 virtual bool allowsBackingStoreDetaching() const { return true; } 591 591 592 virtual void setAllowsTiling(bool allowsTiling) { m_allowsTiling = allowsTiling; } 593 virtual bool allowsTiling() const { return m_allowsTiling; } 594 592 595 virtual void deviceOrPageScaleFactorChanged() { } 593 596 WEBCORE_EXPORT void noteDeviceOrPageScaleFactorChangedIncludingDescendants(); … … 744 747 bool m_acceleratesDrawing : 1; 745 748 bool m_usesDisplayListDrawing : 1; 749 bool m_allowsTiling : 1; 746 750 bool m_appliesPageScale : 1; // Set for the layer which has the page scale applied to it. 747 751 bool m_showDebugBorder : 1; -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r289598 r290545 4375 4375 bool GraphicsLayerCA::requiresTiledLayer(float pageScaleFactor) const 4376 4376 { 4377 if (!m_drawsContent || isPageTiledBackingLayer() )4377 if (!m_drawsContent || isPageTiledBackingLayer() || !allowsTiling()) 4378 4378 return false; 4379 4379 -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r290329 r290545 2126 2126 if (needLayer) { 2127 2127 layer = createGraphicsLayer(layerName); 2128 if (drawsContent) 2128 if (drawsContent) { 2129 2129 layer->setAllowsBackingStoreDetaching(false); 2130 else { 2130 layer->setAllowsTiling(false); 2131 } else { 2131 2132 layer->setPaintingPhase({ }); 2132 2133 layer->setDrawsContent(false); -
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp
r290329 r290545 4032 4032 m_layerForHorizontalScrollbar = GraphicsLayer::create(graphicsLayerFactory(), *this); 4033 4033 m_layerForHorizontalScrollbar->setAllowsBackingStoreDetaching(false); 4034 m_layerForHorizontalScrollbar->setAllowsTiling(false); 4034 4035 m_layerForHorizontalScrollbar->setShowDebugBorder(m_showDebugBorders); 4035 4036 m_layerForHorizontalScrollbar->setName(MAKE_STATIC_STRING_IMPL("horizontal scrollbar container")); … … 4053 4054 m_layerForVerticalScrollbar = GraphicsLayer::create(graphicsLayerFactory(), *this); 4054 4055 m_layerForVerticalScrollbar->setAllowsBackingStoreDetaching(false); 4056 m_layerForVerticalScrollbar->setAllowsTiling(false); 4055 4057 m_layerForVerticalScrollbar->setShowDebugBorder(m_showDebugBorders); 4056 4058 m_layerForVerticalScrollbar->setName(MAKE_STATIC_STRING_IMPL("vertical scrollbar container"));
Note: See TracChangeset
for help on using the changeset viewer.