Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7317)

Unified Diff: chrome/browser/ui/panels/panel_manager.h

Issue 8341098: Mac: Added a delay before panels go to minimized state from title-only state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: disabled win test Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/panels/panel_browsertest.cc ('k') | chrome/browser/ui/panels/panel_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/panels/panel_manager.h
diff --git a/chrome/browser/ui/panels/panel_manager.h b/chrome/browser/ui/panels/panel_manager.h
index b419c8f91116cf1955e58a794e86f0fa770af259..54b6ced8963133878310fda1ce1ce195552e5a62 100644
--- a/chrome/browser/ui/panels/panel_manager.h
+++ b/chrome/browser/ui/panels/panel_manager.h
@@ -22,8 +22,7 @@ class Panel;
// This class manages a set of panels.
// Note that the ref count is needed by using PostTask in the implementation.
class PanelManager : public PanelMouseWatcher::Observer,
- public AutoHidingDesktopBar::Observer,
- public base::RefCounted<PanelManager> {
+ public AutoHidingDesktopBar::Observer {
public:
typedef std::vector<Panel*> Panels;
@@ -101,6 +100,10 @@ class PanelManager : public PanelMouseWatcher::Observer,
SetWorkArea(work_area);
}
+ void remove_delays_for_testing() {
+ remove_delays_for_testing_ = true;
+ }
+
int minimized_panel_count() {
return minimized_panel_count_;
}
@@ -152,13 +155,11 @@ class PanelManager : public PanelMouseWatcher::Observer,
void DragLeft();
void DragRight();
- // Checks if the titlebars have been brought up or down. If not, do not wait
- // for the notifications to trigger it any more, and start to bring them up or
- // down immediately.
- void DelayedBringUpOrDownTitlebarsCheck();
-
// Does the real job of bringing up or down the titlebars.
void DoBringUpOrDownTitlebars(bool bring_up);
+ // The callback for a delyed task, checks if it still need to perform
+ // the delayed action.
+ void DelayedBringUpOrDownTitlebarsCheck();
int GetMaxPanelWidth() const;
int GetMaxPanelHeight() const;
@@ -201,9 +202,12 @@ class PanelManager : public PanelMouseWatcher::Observer,
scoped_refptr<AutoHidingDesktopBar> auto_hiding_desktop_bar_;
+ // Delayed transitions support. Sometimes transitions between minimized and
+ // title-only states are delayed, for better usability with Taskbars/Docks.
TitlebarAction delayed_titlebar_action_;
-
- ScopedRunnableMethodFactory<PanelManager> method_factory_;
+ bool remove_delays_for_testing_;
+ // Owned by MessageLoop after posting.
+ CancelableTask* titlebar_action_task_;
// Whether or not bounds will be updated when the preferred content size is
// changed. The testing code could set this flag to false so that other tests
@@ -223,4 +227,8 @@ class PanelManager : public PanelMouseWatcher::Observer,
DISALLOW_COPY_AND_ASSIGN(PanelManager);
};
+// Required for CancellableTask to be used with non-refcounted objects.
+// Defines empty AddRef/Release.
+DISABLE_RUNNABLE_METHOD_REFCOUNT(PanelManager);
+
#endif // CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
« no previous file with comments | « chrome/browser/ui/panels/panel_browsertest.cc ('k') | chrome/browser/ui/panels/panel_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698