diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-19 01:54:23 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-19 01:54:23 +0000 |
commit | c2788ecbcd5c443fb129f63b7b86f83e944b4950 (patch) | |
tree | 5bf36eb1814dbafe12604c05c19b703897a2c74b /chrome/browser/cocoa/preferences_window_controller.mm | |
parent | d4208dd1717889212bc7749168d1a7b8dea44ebe (diff) | |
download | chromium_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.mm | 19 |
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 |