diff --git a/ChangeLog b/ChangeLog index e4f2b3859..9ab7b7668 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-10-03 Benhur Stein + + * Source/NSWindow.m (-setFrameAutosaveName:): remove previous frame + name from defaults; if there is a saved frame with the new name in + defaults, set window frame to it, otherwise store current frame in + defaults. + 2003-10-03 Benhur Stein * Source/NSWindow.m (class variables, +initialize, diff --git a/Source/NSWindow.m b/Source/NSWindow.m index 559abcb14..ac6892888 100644 --- a/Source/NSWindow.m +++ b/Source/NSWindow.m @@ -3510,8 +3510,6 @@ Code shared with [NSPanel -sendEvent:], remember to update both places. - (BOOL) setFrameAutosaveName: (NSString*)name { - NSString *nameToRemove = nil; - if ([name isEqual: _autosaveName]) { return YES; /* That's our name already. */ @@ -3523,10 +3521,7 @@ Code shared with [NSPanel -sendEvent:], remember to update both places. } if (_autosaveName != nil) { - if (name == nil || [name isEqual: @""] == YES) - { - nameToRemove = RETAIN(_autosaveName); - } + [[self class] removeFrameUsingName: _autosaveName]; [autosaveNames removeObject: _autosaveName]; _autosaveName = nil; } @@ -3536,19 +3531,10 @@ Code shared with [NSPanel -sendEvent:], remember to update both places. [autosaveNames addObject: name]; _autosaveName = name; RELEASE(name); - } - else if (nameToRemove != nil) - { - NSUserDefaults *defs; - NSString *key; - - /* - * Autosave name cleared - remove from defaults database. - */ - defs = [NSUserDefaults standardUserDefaults]; - key = [NSString stringWithFormat: @"NSWindow Frame %@", nameToRemove]; - [defs removeObjectForKey: key]; - RELEASE(nameToRemove); + if (![self setFrameUsingName: _autosaveName]) + { + [self saveFrameUsingName: _autosaveName]; + } } return YES; }