Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Unified Diff: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h

Issue 1406133005: Calculate paint invalidation rect for scrollbars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
index c09f35f39228b636edaae3530f0f52520dee3ad2..606c563f291115167a56c1d84bb573be06fd1c5f 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
@@ -46,9 +46,9 @@
#include "core/CoreExport.h"
#include "core/layout/LayoutBox.h"
+#include "core/paint/PaintInvalidationCapableScrollableArea.h"
#include "core/paint/PaintLayerFragment.h"
#include "platform/heap/Handle.h"
-#include "platform/scroll/ScrollableArea.h"
namespace blink {
@@ -97,7 +97,7 @@ class LayoutScrollbarPart;
// to be painted on top of everything. Hardware accelerated overlay scrollbars
// are painted by their associated GraphicsLayer that sets the paint flag
// PaintLayerPaintingOverlayScrollbars.
-class CORE_EXPORT PaintLayerScrollableArea final : public NoBaseWillBeGarbageCollectedFinalized<PaintLayerScrollableArea>, public ScrollableArea {
+class CORE_EXPORT PaintLayerScrollableArea final : public NoBaseWillBeGarbageCollectedFinalized<PaintLayerScrollableArea>, public PaintInvalidationCapableScrollableArea {
USING_FAST_MALLOC_WILL_BE_REMOVED(PaintLayerScrollableArea);
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PaintLayerScrollableArea);
friend class Internals;
@@ -140,7 +140,7 @@ private:
private:
PassRefPtrWillBeRawPtr<Scrollbar> createScrollbar(ScrollbarOrientation);
- void destroyScrollbar(ScrollbarOrientation, bool invalidate = false);
+ void destroyScrollbar(ScrollbarOrientation);
private:
RawPtrWillBeMember<PaintLayerScrollableArea> m_scrollableArea;
@@ -188,8 +188,7 @@ public:
GraphicsLayer* layerForScrollCorner() const override;
bool usesCompositedScrolling() const override;
- void invalidateScrollbarRect(Scrollbar*, const IntRect&) override;
- void invalidateScrollCornerRect(const IntRect&) override;
+ void scrollControlWasSetNeedsPaintInvalidation() override;
bool shouldUseIntegerScrollOffset() const override;
bool isActive() const override;
bool isScrollCornerVisible() const override;
@@ -261,7 +260,7 @@ public:
bool hasScrollbar() const { return hasHorizontalScrollbar() || hasVerticalScrollbar(); }
- LayoutScrollbarPart* scrollCorner() const { return m_scrollCorner; }
+ LayoutScrollbarPart* scrollCorner() const override { return m_scrollCorner; }
void resize(const PlatformEvent&, const LayoutSize&);
IntSize offsetFromResizeCorner(const IntPoint& absolutePoint) const;
@@ -321,7 +320,7 @@ public:
LayoutBox& box() const;
PaintLayer* layer() const;
- LayoutScrollbarPart* resizer() { return m_resizer; }
+ LayoutScrollbarPart* resizer() const override { return m_resizer; }
const IntPoint& cachedOverlayScrollbarOffset() { return m_cachedOverlayScrollbarOffset; }
void setCachedOverlayScrollbarOffset(const IntPoint& offset) { m_cachedOverlayScrollbarOffset = offset; }
@@ -365,6 +364,9 @@ private:
void updateCompositingLayersAfterScroll();
+ // PaintInvalidationCapableScrollableArea
+ LayoutBox& boxForScrollControlPaintInvalidation() const { return box(); }
+
PaintLayer& m_layer;
// Keeps track of whether the layer is currently resizing, so events can cause resizing to start and stop.

Powered by Google App Engine
This is Rietveld 408576698