diff options
author | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-22 15:07:51 +0000 |
---|---|---|
committer | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-22 15:07:51 +0000 |
commit | baed6304b0997c4c144c1d31d01704d7636f54b4 (patch) | |
tree | 6f31d76f51dd28e24094092568f6b5f89718b4fe /chrome | |
parent | 5f6e7d4b8219f35763c97be3dbbff6dc3d3cddb9 (diff) | |
download | chromium_src-baed6304b0997c4c144c1d31d01704d7636f54b4.zip chromium_src-baed6304b0997c4c144c1d31d01704d7636f54b4.tar.gz chromium_src-baed6304b0997c4c144c1d31d01704d7636f54b4.tar.bz2 |
hide toolstrips in full screen mode
BUG=13439
TEST=none
Review URL: http://codereview.chromium.org/214045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26809 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/views/extensions/extension_shelf.cc | 17 | ||||
-rw-r--r-- | chrome/browser/views/extensions/extension_shelf.h | 6 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 5 |
3 files changed, 27 insertions, 1 deletions
diff --git a/chrome/browser/views/extensions/extension_shelf.cc b/chrome/browser/views/extensions/extension_shelf.cc index 5570acc..797654f 100644 --- a/chrome/browser/views/extensions/extension_shelf.cc +++ b/chrome/browser/views/extensions/extension_shelf.cc @@ -681,7 +681,8 @@ void ExtensionShelf::Toolstrip::HideShelfHandle(int delay_ms) { ExtensionShelf::ExtensionShelf(Browser* browser) : background_needs_repaint_(true), browser_(browser), - model_(browser->extension_shelf_model()) { + model_(browser->extension_shelf_model()), + fullscreen_(false) { model_->AddObserver(this); LoadFromModel(); EnableCanvasFlippingForRTLUI(true); @@ -883,6 +884,8 @@ void ExtensionShelf::Observe(NotificationType type, const NotificationDetails& details) { switch (type.value) { case NotificationType::EXTENSION_SHELF_VISIBILITY_PREF_CHANGED: { + if (fullscreen_) + break; if (IsAlwaysShown()) size_animation_->Show(); else @@ -1109,3 +1112,15 @@ bool ExtensionShelf::OnNewTabPage() const { return (browser_ && browser_->GetSelectedTabContents() && browser_->GetSelectedTabContents()->IsExtensionShelfAlwaysVisible()); } + +void ExtensionShelf::OnFullscreenToggled(bool fullscreen) { + if (fullscreen == fullscreen_) + return; + fullscreen_ = fullscreen; + if (!IsAlwaysShown() || IsOnTop()) + return; + if (fullscreen_) + size_animation_->Hide(); + else + size_animation_->Show(); +} diff --git a/chrome/browser/views/extensions/extension_shelf.h b/chrome/browser/views/extensions/extension_shelf.h index 48a84d0..450e025 100644 --- a/chrome/browser/views/extensions/extension_shelf.h +++ b/chrome/browser/views/extensions/extension_shelf.h @@ -79,6 +79,9 @@ class ExtensionShelf : public DetachableToolbarView, const NotificationSource& source, const NotificationDetails& details); + // Toggle fullscreen mode. + void OnFullscreenToggled(bool fullscreen); + protected: // View methods: virtual void ChildPreferredSizeChanged(View* child); @@ -144,6 +147,9 @@ class ExtensionShelf : public DetachableToolbarView, // Animation controlling showing and hiding of the shelf. scoped_ptr<SlideAnimation> size_animation_; + // Are we in fullscreen mode or not. + bool fullscreen_; + DISALLOW_COPY_AND_ASSIGN(ExtensionShelf); }; diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index e7f4310..24e1560 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -844,6 +844,11 @@ void BrowserView::SetFullscreen(bool fullscreen) { if (bookmark_bar_view_.get()) bookmark_bar_view_->OnFullscreenToggled(fullscreen); + // Notify extension shelf, so it can set itself to the appropriate drawing + // state. + if (extension_shelf_) + extension_shelf_->OnFullscreenToggled(fullscreen); + // Toggle fullscreen mode. frame_->GetWindow()->SetFullscreen(fullscreen); |