summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-22 15:07:51 +0000
committererikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-22 15:07:51 +0000
commitbaed6304b0997c4c144c1d31d01704d7636f54b4 (patch)
tree6f31d76f51dd28e24094092568f6b5f89718b4fe /chrome
parent5f6e7d4b8219f35763c97be3dbbff6dc3d3cddb9 (diff)
downloadchromium_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.cc17
-rw-r--r--chrome/browser/views/extensions/extension_shelf.h6
-rw-r--r--chrome/browser/views/frame/browser_view.cc5
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);