From 33b3166d05decd4ae3eb5e5f9c226411e175b36c Mon Sep 17 00:00:00 2001 From: rfm Date: Tue, 6 Jan 2009 16:58:07 +0000 Subject: [PATCH] Make sure we repopulate cached parts when needed. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27537 72102866-910b-0410-8b05-ffd578937521 --- Source/NSScroller.m | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Source/NSScroller.m b/Source/NSScroller.m index 8ecfad878..576e9f324 100644 --- a/Source/NSScroller.m +++ b/Source/NSScroller.m @@ -933,6 +933,11 @@ static const float buttonsOffset = 2; // buttonsWidth = sw - buttonsOffset static NSRect rectForPartDecrementLine; static NSRect rectForPartKnobSlot; + if (upCell == nil) + { + [self drawParts]; + [self checkSpaceForParts]; + } if (_cacheValid == NO) { rectForPartIncrementLine = [self rectForPart: NSScrollerIncrementLine]; @@ -975,6 +980,11 @@ static const float buttonsOffset = 2; // buttonsWidth = sw - buttonsOffset (whichButton == NSScrollerIncrementArrow ? "increment" : "decrement"), rect.origin.x, rect.origin.y); + if (upCell == nil) + { + [self drawParts]; + [self checkSpaceForParts]; + } switch (whichButton) { case NSScrollerDecrementArrow: @@ -993,6 +1003,11 @@ static const float buttonsOffset = 2; // buttonsWidth = sw - buttonsOffset */ - (void) drawKnob { + if (upCell == nil) + { + [self drawParts]; + [self checkSpaceForParts]; + } if (_isHorizontal) [horizontalKnobCell drawWithFrame: [self rectForPart: NSScrollerKnob] inView: self]; @@ -1005,6 +1020,11 @@ static const float buttonsOffset = 2; // buttonsWidth = sw - buttonsOffset { static NSRect rect; + if (upCell == nil) + { + [self drawParts]; + [self checkSpaceForParts]; + } if (_cacheValid == NO) { rect = [self rectForPart: NSScrollerKnobSlot]; @@ -1051,6 +1071,11 @@ static const float buttonsOffset = 2; // buttonsWidth = sw - buttonsOffset NSInterfaceStyle interfaceStyle = NSInterfaceStyleForKey(@"NSScrollerInterfaceStyle",self); + if (upCell == nil) + { + [self drawParts]; + [self checkSpaceForParts]; + } /* We use the button offset if we in the NeXTstep interface style. */ if (interfaceStyle == NSNextStepInterfaceStyle || interfaceStyle == GSWindowMakerInterfaceStyle)