Index: third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp |
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp b/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp |
index 601dc30aa70d2280b0bbfe66cb227aa844199924..9a1b08e5f1e06dd64991235e9f8b697a7a429875 100644 |
--- a/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp |
+++ b/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp |
@@ -170,6 +170,46 @@ |
return result; |
} |
+void ScrollbarTheme::invalidatePart(ScrollbarThemeClient* scrollbar, ScrollbarPart part) |
+{ |
+ if (part == NoPart) |
+ return; |
+ |
+ IntRect result; |
+ switch (part) { |
+ case BackButtonStartPart: |
+ result = backButtonRect(scrollbar, BackButtonStartPart, true); |
+ break; |
+ case BackButtonEndPart: |
+ result = backButtonRect(scrollbar, BackButtonEndPart, true); |
+ break; |
+ case ForwardButtonStartPart: |
+ result = forwardButtonRect(scrollbar, ForwardButtonStartPart, true); |
+ break; |
+ case ForwardButtonEndPart: |
+ result = forwardButtonRect(scrollbar, ForwardButtonEndPart, true); |
+ break; |
+ case TrackBGPart: |
+ result = trackRect(scrollbar, true); |
+ break; |
+ case ScrollbarBGPart: |
+ result = scrollbar->frameRect(); |
+ break; |
+ default: { |
+ IntRect beforeThumbRect, thumbRect, afterThumbRect; |
+ splitTrack(scrollbar, trackRect(scrollbar), beforeThumbRect, thumbRect, afterThumbRect); |
+ if (part == BackTrackPart) |
+ result = beforeThumbRect; |
+ else if (part == ForwardTrackPart) |
+ result = afterThumbRect; |
+ else |
+ result = thumbRect; |
+ } |
+ } |
+ result.moveBy(-scrollbar->location()); |
+ scrollbar->invalidateRect(result); |
+} |
+ |
void ScrollbarTheme::paintScrollCorner(GraphicsContext* context, const DisplayItemClientWrapper& displayItemClient, const IntRect& cornerRect) |
{ |
if (cornerRect.isEmpty()) |