Changeset 198784 in webkit
- Timestamp:
- Mar 29, 2016 10:16:25 AM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r198783 r198784 1 2016-03-29 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [OS X] [RTL Scrollbars] Overlay RTL scrollbars animate in from the wrong side 4 https://bugs.webkit.org/show_bug.cgi?id=155962 5 6 Reviewed by Simon Fraser. 7 8 We can control the animation direction with the NSScrollerImp property 9 userInterfaceLayoutDirection. 10 11 Not testable. 12 13 * platform/ScrollableArea.cpp: 14 (WebCore::ScrollableArea::setScrollbarLayoutDirection): 15 * platform/ScrollableArea.h: 16 (WebCore::ScrollableArea::horizontalScrollbar): 17 (WebCore::ScrollableArea::verticalScrollbar): 18 (WebCore::ScrollableArea::tiledBacking): 19 (WebCore::ScrollableArea::layerForHorizontalScrollbar): 20 (WebCore::ScrollableArea::layerForVerticalScrollbar): 21 (WebCore::ScrollableArea::layerForScrolling): 22 (WebCore::ScrollableArea::layerForScrollCorner): 23 (WebCore::ScrollableArea::layerForOverhangAreas): 24 * platform/mac/ScrollAnimatorMac.mm: 25 (WebCore::ScrollAnimatorMac::updateScrollerStyle): 26 * platform/mac/ScrollableAreaMac.mm: 27 (WebCore::ScrollableArea::setScrollbarDirection): 28 * platform/mac/ScrollbarThemeMac.mm: 29 (WebCore::ScrollbarThemeMac::registerScrollbar): 30 * platform/spi/mac/NSScrollerImpSPI.h: 31 1 32 2016-03-29 Dan Bernstein <mitz@apple.com> 2 33 -
trunk/Source/WebCore/platform/ScrollableArea.h
r198369 r198784 30 30 #include <wtf/Vector.h> 31 31 32 #if PLATFORM(COCOA) 33 OBJC_CLASS NSScrollerImp; 34 #endif 35 32 36 namespace WebCore { 33 37 … … 181 185 WEBCORE_EXPORT IntSize scrollbarIntrusion() const; 182 186 183 virtual Scrollbar* horizontalScrollbar() const { return 0; }184 virtual Scrollbar* verticalScrollbar() const { return 0; }187 virtual Scrollbar* horizontalScrollbar() const { return nullptr; } 188 virtual Scrollbar* verticalScrollbar() const { return nullptr; } 185 189 186 190 const IntPoint& scrollOrigin() const { return m_scrollOrigin; } … … 294 298 #endif 295 299 296 virtual TiledBacking* tiledBacking() const { return 0; }300 virtual TiledBacking* tiledBacking() const { return nullptr; } 297 301 298 302 // True if scrolling happens by moving compositing layers. … … 301 305 virtual bool usesAsyncScrolling() const { return false; } 302 306 303 virtual GraphicsLayer* layerForHorizontalScrollbar() const { return 0; }304 virtual GraphicsLayer* layerForVerticalScrollbar() const { return 0; }307 virtual GraphicsLayer* layerForHorizontalScrollbar() const { return nullptr; } 308 virtual GraphicsLayer* layerForVerticalScrollbar() const { return nullptr; } 305 309 306 310 bool hasLayerForHorizontalScrollbar() const; … … 315 319 bool verticalScrollbarIsOnLeft() const; 316 320 static bool systemLanguageIsRTL(); 321 #if PLATFORM(COCOA) 322 void setScrollbarLayoutDirection(NSScrollerImp *) const; 323 #endif 317 324 318 325 protected: … … 328 335 329 336 friend class ScrollingCoordinator; 330 virtual GraphicsLayer* layerForScrolling() const { return 0; }331 virtual GraphicsLayer* layerForScrollCorner() const { return 0; }337 virtual GraphicsLayer* layerForScrolling() const { return nullptr; } 338 virtual GraphicsLayer* layerForScrollCorner() const { return nullptr; } 332 339 #if ENABLE(RUBBER_BANDING) 333 virtual GraphicsLayer* layerForOverhangAreas() const { return 0; }340 virtual GraphicsLayer* layerForOverhangAreas() const { return nullptr; } 334 341 #endif 335 342 -
trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm
r198756 r198784 1305 1305 NSScrollerImp *oldVerticalPainter = [m_scrollbarPainterController verticalScrollerImp]; 1306 1306 NSScrollerImp *newVerticalPainter = [NSScrollerImp scrollerImpWithStyle:newStyle controlSize:(NSControlSize)verticalScrollbar->controlSize() horizontal:NO replacingScrollerImp:oldVerticalPainter]; 1307 m_scrollableArea.setScrollbarLayoutDirection(newVerticalPainter); 1307 1308 1308 1309 [m_scrollbarPainterController setVerticalScrollerImp:newVerticalPainter]; … … 1321 1322 NSScrollerImp *oldHorizontalPainter = [m_scrollbarPainterController horizontalScrollerImp]; 1322 1323 NSScrollerImp *newHorizontalPainter = [NSScrollerImp scrollerImpWithStyle:newStyle controlSize:(NSControlSize)horizontalScrollbar->controlSize() horizontal:YES replacingScrollerImp:oldHorizontalPainter]; 1324 m_scrollableArea.setScrollbarLayoutDirection(newHorizontalPainter); 1323 1325 1324 1326 [m_scrollbarPainterController setHorizontalScrollerImp:newHorizontalPainter]; -
trunk/Source/WebCore/platform/mac/ScrollableAreaMac.mm
r198369 r198784 55 55 } 56 56 57 void ScrollableArea::setScrollbarLayoutDirection(NSScrollerImp *scroller) const 58 { 59 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200 60 scroller.userInterfaceLayoutDirection = verticalScrollbarIsOnLeft() ? NSUserInterfaceLayoutDirectionRightToLeft : NSUserInterfaceLayoutDirectionLeftToRight; 61 #else 62 UNUSED_PARAM(scroller); 63 #endif 57 64 } 65 66 } -
trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm
r198717 r198784 161 161 bool isHorizontal = scrollbar.orientation() == HorizontalScrollbar; 162 162 NSScrollerImp *scrollbarPainter = [NSScrollerImp scrollerImpWithStyle:recommendedScrollerStyle() controlSize:scrollbarControlSizeToNSControlSize(scrollbar.controlSize()) horizontal:isHorizontal replacingScrollerImp:nil]; 163 scrollbar.scrollableArea().setScrollbarLayoutDirection(scrollbarPainter); 163 164 scrollbarMap()->add(&scrollbar, scrollbarPainter); 164 165 updateEnabledState(scrollbar); -
trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h
r198445 r198784 80 80 @property(readonly) CGFloat knobOverlapEndInset; 81 81 @property(readonly) CGFloat trackOverlapEndInset; 82 @property NSUserInterfaceLayoutDirection userInterfaceLayoutDirection; 82 83 - (NSRect)rectForPart:(NSScrollerPart)partCode; 83 84 - (void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag alpha:(CGFloat)alpha;
Note: See TracChangeset
for help on using the changeset viewer.