Index: chrome/browser/ui/panels/panel.cc |
diff --git a/chrome/browser/ui/panels/panel.cc b/chrome/browser/ui/panels/panel.cc |
index ac3027f277c5594e2e26db4b8fd34bf4ae36b229..722ab694b156db4fbb72373ce9aa48ac5f7b2a0f 100644 |
--- a/chrome/browser/ui/panels/panel.cc |
+++ b/chrome/browser/ui/panels/panel.cc |
@@ -63,6 +63,8 @@ void Panel::Initialize(const gfx::Rect& bounds) { |
DCHECK(!bounds.IsEmpty()); |
initialized_ = true; |
native_panel_ = CreateNativePanel(browser_, this, bounds); |
+ if (panel_strip_ != NULL) |
+ native_panel_->PreventActivationByOS(panel_strip_->IsPanelMinimized(this)); |
} |
void Panel::OnNativePanelClosed() { |
@@ -156,6 +158,12 @@ void Panel::SetAppIconVisibility(bool visible) { |
native_panel_->SetPanelAppIconVisibility(visible); |
} |
+void Panel::SetPanelStrip(PanelStrip* new_strip) { |
+ panel_strip_ = new_strip; |
+ if (panel_strip_ != NULL && initialized_) |
+ native_panel_->PreventActivationByOS(panel_strip_->IsPanelMinimized(this)); |
+} |
+ |
void Panel::SetExpansionState(ExpansionState new_state) { |
if (expansion_state_ == new_state) |
return; |
@@ -168,6 +176,9 @@ void Panel::SetExpansionState(ExpansionState new_state) { |
if (expansion_state_ == MINIMIZED) |
Deactivate(); |
+ DCHECK(initialized_ && panel_strip_ != NULL); |
+ native_panel_->PreventActivationByOS(panel_strip_->IsPanelMinimized(this)); |
+ |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_PANEL_CHANGED_EXPANSION_STATE, |
content::Source<Panel>(this), |