Index: chrome/browser/ui/cocoa/browser_window_cocoa.mm |
diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
index 7711625bd458b5159785d2a47be819a7d7260ac9..3488e47ed5128a70dead438725050036c6a73ea6 100644 |
--- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
+++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
@@ -19,6 +19,8 @@ |
#include "chrome/browser/fullscreen.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/shell_integration.h" |
+#include "chrome/browser/sidebar/sidebar_container.h" |
+#include "chrome/browser/sidebar/sidebar_manager.h" |
#include "chrome/browser/signin/signin_header_helper.h" |
#include "chrome/browser/translate/chrome_translate_client.h" |
#include "chrome/browser/ui/browser.h" |
@@ -130,6 +132,9 @@ BrowserWindowCocoa::BrowserWindowCocoa(Browser* browser, |
controller_(controller), |
initial_show_state_(ui::SHOW_STATE_DEFAULT), |
attention_request_id_(0) { |
+ registrar_.Add( |
+ this, chrome::NOTIFICATION_SIDEBAR_CHANGED, |
+ content::Source<SidebarManager>(SidebarManager::GetInstance())); |
gfx::Rect bounds; |
chrome::GetSavedWindowBoundsAndShowState(browser_, |
@@ -312,6 +317,7 @@ void BrowserWindowCocoa::BookmarkBarStateChanged( |
void BrowserWindowCocoa::UpdateDevTools() { |
[controller_ updateDevToolsForContents: |
browser_->tab_strip_model()->GetActiveWebContents()]; |
+ UpdateSidebarForContents(browser_->tab_strip_model()->GetActiveWebContents()); |
} |
void BrowserWindowCocoa::UpdateLoadingAnimations(bool should_animate) { |
@@ -782,6 +788,20 @@ void BrowserWindowCocoa::ModelChanged(const SearchModel::State& old_state, |
const SearchModel::State& new_state) { |
} |
+void BrowserWindowCocoa::Observe(int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) { |
+ switch (type) { |
+ case chrome::NOTIFICATION_SIDEBAR_CHANGED: |
+ UpdateSidebarForContents( |
+ content::Details<SidebarContainer>(details)->web_contents()); |
+ break; |
+ default: |
+ NOTREACHED(); // we don't ask for anything else! |
+ break; |
+ } |
+} |
+ |
void BrowserWindowCocoa::DestroyBrowser() { |
[controller_ destroyBrowser]; |
@@ -809,6 +829,13 @@ void BrowserWindowCocoa::CloseAvatarBubbleFromAvatarButton() { |
[[controller_ avatarButtonController] closeAvatarBubble]; |
} |
+void BrowserWindowCocoa::UpdateSidebarForContents( |
+ content::WebContents* tab_contents) { |
+ if (tab_contents == browser_->tab_strip_model()->GetActiveWebContents()) { |
+ [controller_ updateSidebarForContents:tab_contents]; |
+ } |
+} |
+ |
int |
BrowserWindowCocoa::GetRenderViewHeightInsetWithDetachedBookmarkBar() { |
if (browser_->bookmark_bar_state() != BookmarkBar::DETACHED) |