summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/preferences_window_controller.mm
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-19 01:54:23 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-19 01:54:23 +0000
commitc2788ecbcd5c443fb129f63b7b86f83e944b4950 (patch)
tree5bf36eb1814dbafe12604c05c19b703897a2c74b /chrome/browser/cocoa/preferences_window_controller.mm
parentd4208dd1717889212bc7749168d1a7b8dea44ebe (diff)
downloadchromium_src-c2788ecbcd5c443fb129f63b7b86f83e944b4950.zip
chromium_src-c2788ecbcd5c443fb129f63b7b86f83e944b4950.tar.gz
chromium_src-c2788ecbcd5c443fb129f63b7b86f83e944b4950.tar.bz2
[Mac] Polish the search engine manager
* Make the edit search engine window a sheet. * Only allow one instance of the search engine manager to be opened at once. * The search engine manager now remembers its position. * Create NSWindow(LocalStateAdditions) category to assist with storing window position in Chromium's local state. BUG=21761,21762,21883,21996 TEST=Editing/adding a search engine happens in a sheet. Press [Manage] multiple times and only 1 window should open. Press [Manage] and the window should be at its last position. Review URL: http://codereview.chromium.org/207027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26646 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/preferences_window_controller.mm')
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm19
1 files changed, 16 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index 26a82bb..b3f234d 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -540,11 +540,24 @@ enum { kHomepageNewTabPage, kHomepageURL };
[self setSearchEngineSelectedIndex:[self searchEngineSelectedIndex]];
}
+// Notification receiver for when the keyword editor window closes. The
+// controller will clean up the window, but we need to clean up.
+- (void)keywordEditorClosed:(NSNotification*)notif {
+ keywordEditorController_ = nil;
+}
+
// Brings up the edit search engines window.
- (IBAction)manageSearchEngines:(id)sender {
- KeywordEditorCocoaController* controller =
- [[KeywordEditorCocoaController alloc] initWithProfile:profile_];
- [[controller window] makeKeyAndOrderFront:sender];
+ if (!keywordEditorController_) {
+ keywordEditorController_ =
+ [[KeywordEditorCocoaController alloc] initWithProfile:profile_];
+ NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
+ [center addObserver:self
+ selector:@selector(keywordEditorClosed:)
+ name:NSWindowWillCloseNotification
+ object:[keywordEditorController_ window]];
+ }
+ [[keywordEditorController_ window] makeKeyAndOrderFront:sender];
}
// Called when the user clicks the button to make Chromium the default