diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-30 19:23:58 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-30 19:23:58 +0000 |
commit | 767543dfe21880d26ea805ab6eaf4147ac4c2351 (patch) | |
tree | da880cc189e8cca09cb89e0f5c0329f462f5d85a /chrome/browser/app_controller_mac.mm | |
parent | 1aba390ce0ae355c82a3eb0e468926ad29e27484 (diff) | |
download | chromium_src-767543dfe21880d26ea805ab6eaf4147ac4c2351.zip chromium_src-767543dfe21880d26ea805ab6eaf4147ac4c2351.tar.gz chromium_src-767543dfe21880d26ea805ab6eaf4147ac4c2351.tar.bz2 |
Add notification (and unit test) for closing prefs window so it can be cleaned up properly in the app controller. Make the prefs window controller the window's delegate so it gets close notifications.
Review URL: http://codereview.chromium.org/99238
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14967 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/app_controller_mac.mm')
-rw-r--r-- | chrome/browser/app_controller_mac.mm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index 082d0f5..a75c0e5 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm @@ -232,6 +232,13 @@ void OpenURLs(const std::vector<GURL>& urls) { OpenURLs(gurlVector); } +// Called when the preferences window is closed. We use this to release the +// window controller. +- (void)prefsWindowClosed:(NSNotification*)notify { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + prefsController_.reset(NULL); +} + // Show the preferences window, or bring it to the front if it's already // visible. - (IBAction)showPreferences:(id)sender { @@ -239,6 +246,13 @@ void OpenURLs(const std::vector<GURL>& urls) { PrefService* prefs = [self defaultProfile]->GetPrefs(); prefsController_.reset([[PreferencesWindowController alloc] initWithPrefs:prefs]); + // Watch for a notification of when it goes away so that we can destroy + // the controller. + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(prefsWindowClosed:) + name:kUserDoneEditingPrefsNotification + object:prefsController_.get()]; } [prefsController_ showPreferences:sender]; } |