diff --git a/ChangeLog b/ChangeLog index 3dc1da921..43cdf3aa1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-04-25 Richard Frith-Macdonald + + * Source/NSSavePanel.m: Track window resizing and adjust browser + columns to match. Use larger minimum width. + 2003-04-21 Serg Stoyan * Source/NSMenuView.m: diff --git a/Source/NSSavePanel.m b/Source/NSSavePanel.m index d915f1017..17943f0f0 100644 --- a/Source/NSSavePanel.m +++ b/Source/NSSavePanel.m @@ -77,6 +77,7 @@ static BOOL _gs_display_reading_progress = NO; - (void) _selectCellName: (NSString *)title; - (void) _setupForDirectory: (NSString *)path file: (NSString *)name; - (BOOL) _shouldShowExtension: (NSString *)extension isDir: (BOOL *)isDir; +- (void) _windowResized: (NSNotification*)n; @end /* NSSavePanel (PrivateMethods) */ @implementation NSSavePanel (_PrivateMethods) @@ -88,6 +89,12 @@ static BOOL _gs_display_reading_progress = NO; NSRect r; id lastKeyView; + // Track window resizing so we can change number of browser columns. + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(_windowResized:) + name: NSWindowDidResizeNotification + object: self]; + // // WARNING: We create the panel sized (308, 317), which is the // minimum size we want it to have. Then, we resize it at the @@ -125,6 +132,7 @@ static BOOL _gs_display_reading_progress = NO; [_browser setTag: NSFileHandlingPanelBrowser]; [_browser setAction:@selector(_selectText:)]; [_browser setTarget:self]; + [_browser setMinColumnWidth: 140]; [_topView addSubview: _browser]; [_browser release]; @@ -475,6 +483,11 @@ selectCellWithString: (NSString*)title return YES; } +- (void) _windowResized: (NSNotification*)n +{ + [_browser setMaxVisibleColumns: [_browser frame].size.width / 140]; +} + @end /* NSSavePanel (PrivateMethods) */ // @@ -530,8 +543,9 @@ selectCellWithString: (NSString*)title } // --(void) dealloc +- (void) dealloc { + [[NSNotificationCenter defaultCenter] removeObserver: self]; TEST_RELEASE (_fullFileName); TEST_RELEASE (_directory); TEST_RELEASE (_requiredFileType); diff --git a/Source/NSWindow.m b/Source/NSWindow.m index cfef51d9c..e52922b29 100644 --- a/Source/NSWindow.m +++ b/Source/NSWindow.m @@ -3047,7 +3047,8 @@ Code shared with [NSPanel -sendEvent:], remember to update both places. if (_f.is_miniaturized) { /* Window Manager just deminiaturized us */ - [self _didDeminiaturize: self]; + [self deminiaturize: self]; + //[self _didDeminiaturize: self]; } if ([NSApp isHidden]) {