diff options
Diffstat (limited to 'chrome/browser/views/extensions/extension_view.cc')
-rw-r--r-- | chrome/browser/views/extensions/extension_view.cc | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/chrome/browser/views/extensions/extension_view.cc b/chrome/browser/views/extensions/extension_view.cc index f59d1a4..1d0cfc5 100644 --- a/chrome/browser/views/extensions/extension_view.cc +++ b/chrome/browser/views/extensions/extension_view.cc @@ -13,8 +13,10 @@ #include "views/widget/widget.h" ExtensionView::ExtensionView(ExtensionHost* host, Browser* browser) - : host_(host), browser_(browser), - initialized_(false), pending_preferred_width_(0), container_(NULL), + : host_(host), + browser_(browser), + initialized_(false), + container_(NULL), is_clipped_(false) { host_->set_view(this); } @@ -110,7 +112,8 @@ void ExtensionView::ShowIfCompletelyLoaded() { return; } SetVisible(true); - UpdatePreferredWidth(pending_preferred_width_); + + UpdatePreferredSize(pending_preferred_size_); } } @@ -131,17 +134,17 @@ void ExtensionView::SetBackground(const SkBitmap& background) { ShowIfCompletelyLoaded(); } -void ExtensionView::UpdatePreferredWidth(int pref_width) { +void ExtensionView::UpdatePreferredSize(const gfx::Size& new_size) { // Don't actually do anything with this information until we have been shown. // Size changes will not be honored by lower layers while we are hidden. - gfx::Size preferred_size = GetPreferredSize(); if (!IsVisible()) { - pending_preferred_width_ = pref_width; - } else if (pref_width > 0 && pref_width != preferred_size.width()) { - if (preferred_size.height() == 0) - preferred_size.set_height(height()); - SetPreferredSize(gfx::Size(pref_width, preferred_size.height())); + pending_preferred_size_ = new_size; + return; } + + gfx::Size preferred_size = GetPreferredSize(); + if (new_size != preferred_size) + SetPreferredSize(new_size); } void ExtensionView::ViewHierarchyChanged(bool is_add, @@ -168,3 +171,9 @@ void ExtensionView::RenderViewCreated() { pending_background_.reset(); } } + +void ExtensionView::SetPreferredSize(const gfx::Size& size) { + views::NativeViewHost::SetPreferredSize(size); + if (container_) + container_->OnExtensionPreferredSizeChanged(this); +} |