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

Unified Diff: Source/devtools/front_end/SplitView.js

Issue 197823010: [DevTools] Add minimum size to WebInspector.View. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@splitdip2
Patch Set: Created 6 years, 9 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
Index: Source/devtools/front_end/SplitView.js
diff --git a/Source/devtools/front_end/SplitView.js b/Source/devtools/front_end/SplitView.js
index 333f8c31f679ac3f18da9ac8634f287781be09c4..e96fb730e6a80374b3153a63078c1d942ca7c423 100644
--- a/Source/devtools/front_end/SplitView.js
+++ b/Source/devtools/front_end/SplitView.js
@@ -95,6 +95,8 @@ WebInspector.SplitView.Events = {
ShowModeChanged: "ShowModeChanged"
}
+WebInspector.SplitView.MinPadding = 20;
+
WebInspector.SplitView.prototype = {
/**
* @return {boolean}
@@ -132,6 +134,7 @@ WebInspector.SplitView.prototype = {
if (this._shouldSaveShowMode)
this._restoreAndApplyShowModeFromSettings();
this._updateShowHideSidebarButton();
+ this.invalidateMinimumSize();
for (var i = 0; i < this._resizerElements.length; ++i) {
this._resizerElements[i].classList.toggle("ew-resizer-widget", this._isVertical);
@@ -370,6 +373,7 @@ WebInspector.SplitView.prototype = {
this._saveShowModeToSettings();
this._updateShowHideSidebarButton();
this.dispatchEventToListeners(WebInspector.SplitView.Events.ShowModeChanged, showMode);
+ this.invalidateMinimumSize();
},
/**
@@ -514,52 +518,29 @@ WebInspector.SplitView.prototype = {
},
/**
- * @param {number=} minWidth
- * @param {number=} minHeight
- */
- setSidebarElementConstraints: function(minWidth, minHeight)
- {
- if (typeof minWidth === "number")
- this._minimumSidebarWidth = minWidth;
- if (typeof minHeight === "number")
- this._minimumSidebarHeight = minHeight;
- },
-
- /**
- * @param {number=} minWidth
- * @param {number=} minHeight
- */
- setMainElementConstraints: function(minWidth, minHeight)
- {
- if (typeof minWidth === "number")
- this._minimumMainWidth = minWidth;
- if (typeof minHeight === "number")
- this._minimumMainHeight = minHeight;
- },
-
- /**
* @param {number} sidebarSize
* @return {number}
*/
_applyConstraints: function(sidebarSize)
{
- const minPadding = 20;
var totalSize = this.totalSize();
- var minimumSiderbarSizeContraint = this.isVertical() ? this._minimumSidebarWidth : this._minimumSidebarHeight;
- var from = minimumSiderbarSizeContraint || 0;
- if (typeof minimumSiderbarSizeContraint !== "number")
- from = Math.max(from, minPadding);
- var minimumMainSizeConstraint = this.isVertical() ? this._minimumMainWidth : this._minimumMainHeight;
- var minMainSize = minimumMainSizeConstraint || 0;
- if (typeof minimumMainSizeConstraint !== "number")
- minMainSize = Math.max(minMainSize, minPadding);
+ var size = this._sidebarView.minimumSize();
+ var from = this.isVertical() ? size.width : size.height;
+ if (!from)
+ from = WebInspector.SplitView.MinPadding;
+
+ size = this._mainView.minimumSize();
+ var minMainSize = this.isVertical() ? size.width : size.height;
+ if (!minMainSize)
+ minMainSize = WebInspector.SplitView.MinPadding;
var to = totalSize - minMainSize;
if (from <= to)
return Number.constrain(sidebarSize, from, to);
- return -1;
pfeldman 2014/03/14 06:23:10 This -1 was used for the case when _applyConstrain
dgozman 2014/03/14 15:55:15 I've removed check for this in _innerSetSidebarSiz
+ // If we don't have enough space (which is a very rare case), prioritize main view.
+ return Math.max(0, to);
},
wasShown: function()
@@ -573,6 +554,25 @@ WebInspector.SplitView.prototype = {
},
/**
+ * @return {!Size}
+ */
+ calculateMinimumSize: function()
+ {
+ if (this._showMode === WebInspector.SplitView.ShowMode.OnlyMain)
+ return this._mainView.minimumSize();
+ if (this._showMode === WebInspector.SplitView.ShowMode.OnlySidebar)
+ return this._sidebarView.minimumSize();
+
+ var mainSize = this._mainView.minimumSize();
+ var sidebarSize = this._sidebarView.minimumSize();
+ var min = WebInspector.SplitView.MinPadding;
+ if (this._isVertical)
+ return new Size((mainSize.width || min) + (sidebarSize.width || min), Math.max(mainSize.height, sidebarSize.height));
+ else
+ return new Size(Math.max(mainSize.width, sidebarSize.width), (mainSize.height || min) + (sidebarSize.height || min));
+ },
+
+ /**
* @param {!MouseEvent} event
* @return {boolean}
*/

Powered by Google App Engine
This is Rietveld 408576698