Index: chrome/browser/cocoa/shell_dialogs_mac.mm |
diff --git a/chrome/browser/cocoa/shell_dialogs_mac.mm b/chrome/browser/cocoa/shell_dialogs_mac.mm |
index d439a5a447210cd29dde25b81b1ae6c6b8f7910b..400a848175bd6bc99c79d8c120a081775e120e20 100644 |
--- a/chrome/browser/cocoa/shell_dialogs_mac.mm |
+++ b/chrome/browser/cocoa/shell_dialogs_mac.mm |
@@ -314,25 +314,29 @@ NSView* SelectFileDialogImpl::GetAccessoryView(const FileTypeInfo* file_types, |
bool isMulti = type == SelectFileDialog::SELECT_OPEN_MULTI_FILE; |
std::vector<FilePath> paths; |
- if (type == SelectFileDialog::SELECT_SAVEAS_FILE) { |
- paths.push_back(FilePath(base::SysNSStringToUTF8([panel filename]))); |
- |
- NSView* accessoryView = [panel accessoryView]; |
- if (accessoryView) { |
- NSPopUpButton* popup = [accessoryView viewWithTag:kFileTypePopupTag]; |
- if (popup) { |
- index = [popup indexOfSelectedItem]+1; // file type indexes are 1-based |
+ bool did_cancel = returnCode == NSCancelButton; |
+ if (!did_cancel) { |
+ if (type == SelectFileDialog::SELECT_SAVEAS_FILE) { |
+ paths.push_back(FilePath(base::SysNSStringToUTF8([panel filename]))); |
+ |
+ NSView* accessoryView = [panel accessoryView]; |
+ if (accessoryView) { |
+ NSPopUpButton* popup = [accessoryView viewWithTag:kFileTypePopupTag]; |
+ if (popup) { |
+ // File type indexes are 1-based. |
+ index = [popup indexOfSelectedItem] + 1; |
+ } |
} |
+ } else { |
+ NSArray* filenames = [panel filenames]; |
+ for (NSString* filename in filenames) |
+ paths.push_back(FilePath(base::SysNSStringToUTF8(filename))); |
} |
- } else { |
- NSArray* filenames = [panel filenames]; |
- for (NSString* filename in filenames) |
- paths.push_back(FilePath(base::SysNSStringToUTF8(filename))); |
} |
selectFileDialogImpl_->FileWasSelected(panel, |
parentWindow, |
- returnCode==NSCancelButton, |
+ did_cancel, |
isMulti, |
paths, |
index); |