From deacdde5218b409d6c10d47901330fb1bfb34820 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 4 Jan 2013 12:14:22 -0800 Subject: [PATCH] Fix bug in CPSegmentedControl not reducing his size when removing segments --- AppKit/CPSegmentedControl.j | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/AppKit/CPSegmentedControl.j b/AppKit/CPSegmentedControl.j index 0399cf050..00e0118fb 100644 --- a/AppKit/CPSegmentedControl.j +++ b/AppKit/CPSegmentedControl.j @@ -115,13 +115,15 @@ CPSegmentSwitchTrackingMomentary = 2; if (_selectedSegment >= _segments.length) _selectedSegment = -1; - // Make space for/remove space used by dividers. var thickness = [self currentValueForThemeAttribute:@"divider-thickness"], - delta = thickness * (dividersAfter - dividersBefore), - frame = [self frame]; + frame = [self frame], + widthOfAllSegments = 0, + dividerExtraSpace = ([_segments count] - 1) * thickness; - if (delta) - [self setFrameSize:CGSizeMake(frame.size.width + delta, frame.size.height)]; + for (var i = 0; i < [_segments count]; i++) + widthOfAllSegments += [_segments[i] width]; + + [self setFrameSize:CGSizeMake(widthOfAllSegments + dividerExtraSpace, frame.size.height)]; [self tileWithChangedSegment:0]; }