diff --git a/ChangeLog b/ChangeLog index c1332e6f5..40697f385 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2012-11-12 Wolfgang Lux + + * Source/NSDocument.m (-_runSavePanelForSaveOperation:): Set save + panel accessory view before calling -prepareSavePanel: to allow + clients to modify the accessory view. Furthermore, don't call + -prepareSavePanel: if -runModalSavePanel:withAccessoryView: is + overridden. + 2012-11-05 Fred Kiefer * Source/NSApplication.m (-_openFiles): Protect agains empty arguments. diff --git a/Source/NSDocument.m b/Source/NSDocument.m index 29389fae7..c27adf41a 100644 --- a/Source/NSDocument.m +++ b/Source/NSDocument.m @@ -1146,7 +1146,6 @@ originalContentsURL: (NSURL *)orig - (NSSavePanel *)_runSavePanelForSaveOperation: (NSSaveOperationType)saveOperation { - NSView *accessory = nil; NSString *title; NSString *directory; NSArray *types; @@ -1164,7 +1163,7 @@ originalContentsURL: (NSURL *)orig [self _addItemsToSpaButtonFromArray: types]; - accessory = _save_panel_accessory; + [savePanel setAccessoryView: _save_panel_accessory]; } if ([types count] > 0) @@ -1192,13 +1191,16 @@ originalContentsURL: (NSURL *)orig else directory = [controller currentDirectory]; [savePanel setDirectory: directory]; - - if (![self prepareSavePanel: savePanel]) - { - return nil; - } - if ([self runModalSavePanel: savePanel withAccessoryView: accessory]) + if (!OVERRIDDEN(runModalSavePanel:withAccessoryView:)) + { + if (![self prepareSavePanel: savePanel]) + { + return nil; + } + } + if ([self runModalSavePanel: savePanel + withAccessoryView: [savePanel accessoryView]]) { return savePanel; }