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

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

Issue 8602007: Panels: Disable auto-resize if initial size is specified during creation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use golden ratio Created 9 years, 1 month 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') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/panels/panel_manager.cc
diff --git a/chrome/browser/ui/panels/panel_manager.cc b/chrome/browser/ui/panels/panel_manager.cc
index b7669b3d4f05e7406ad9799f97d8a08ce83b648d..55586073053b0f81cbeecd8628d85ef12426eebd 100644
--- a/chrome/browser/ui/panels/panel_manager.cc
+++ b/chrome/browser/ui/panels/panel_manager.cc
@@ -26,9 +26,9 @@ const size_t kInvalidPanelIndex = static_cast<size_t>(-1);
// elements located on the bottom right of windows.
const int kRightScreenEdgeSpacingWidth = 24;
-// Default width and height of a panel.
-const int kPanelDefaultWidth = 240;
-const int kPanelDefaultHeight = 290;
+// Width to height ratio is used to compute the default width or height
+// when only one value is provided.
+const double kPanelDefaultWidthToHeightRatio = 1.62; // golden ratio
// Maxmium width and height of a panel based on the factor of the working
// area.
@@ -105,9 +105,14 @@ Panel* PanelManager::CreatePanel(Browser* browser) {
int width = browser->override_bounds().width();
int height = browser->override_bounds().height();
- if (width == 0 && height == 0) {
- width = kPanelDefaultWidth;
- height = kPanelDefaultHeight;
+ // Auto resizable is enabled only if no initial size is provided.
+ bool auto_resize = (width == 0 && height == 0);
+
+ if (!auto_resize) {
+ if (height == 0)
+ height = width / kPanelDefaultWidthToHeightRatio;
+ if (width == 0)
+ width = height * kPanelDefaultWidthToHeightRatio;
}
int max_panel_width = GetMaxPanelWidth();
@@ -127,8 +132,11 @@ Panel* PanelManager::CreatePanel(Browser* browser) {
int x = GetRightMostAvailablePosition() - width;
// Now create the panel with the computed bounds.
- Panel* panel = new Panel(browser, gfx::Rect(x, y, width, height));
- panel->SetMaxSize(gfx::Size(max_panel_width, max_panel_height));
+ Panel* panel = new Panel(browser,
+ gfx::Rect(x, y, width, height),
+ gfx::Size(kPanelMinWidth, kPanelMinHeight),
+ gfx::Size(max_panel_width, max_panel_height),
+ auto_resize);
panels_.push_back(panel);
content::NotificationService::current()->Notify(
« no previous file with comments | « chrome/browser/ui/panels/panel_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698