- Revision
- 203912
- Author
- [email protected]
- Date
- 2016-07-29 11:58:23 -0700 (Fri, 29 Jul 2016)
Log Message
REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
https://bugs.webkit.org/show_bug.cgi?id=159646
<rdar://problem/27286338>
Reviewed by Brian Burg.
Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
share its width Element tab's sidebar.
TabContentView stores the width but TabBrowser manages saving and restoring it.
The same way collapsed sidebar state is handled.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.set collapsed):
Don't change sidebar's width when sidebar panels change.
(WebInspector.Sidebar.prototype._recalculateWidth):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
Pass newWidth as an argument so it can be saved in TabBrowser.
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel): Deleted.
(WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
(WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
Remove the per sidebar panel width setting that was added in r195456.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
Store details sidebar width on TabContentView.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (203911 => 203912)
--- trunk/Source/WebInspectorUI/ChangeLog 2016-07-29 18:52:53 UTC (rev 203911)
+++ trunk/Source/WebInspectorUI/ChangeLog 2016-07-29 18:58:23 UTC (rev 203912)
@@ -1,3 +1,41 @@
+2016-07-29 Nikita Vasilyev <[email protected]>
+
+ REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
+ https://bugs.webkit.org/show_bug.cgi?id=159646
+ <rdar://problem/27286338>
+
+ Reviewed by Brian Burg.
+
+ Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
+ Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
+ share its width Element tab's sidebar.
+
+ TabContentView stores the width but TabBrowser manages saving and restoring it.
+ The same way collapsed sidebar state is handled.
+
+ * UserInterface/Views/Sidebar.js:
+ (WebInspector.Sidebar.prototype.set collapsed):
+ Don't change sidebar's width when sidebar panels change.
+
+ (WebInspector.Sidebar.prototype._recalculateWidth):
+ (WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
+ Pass newWidth as an argument so it can be saved in TabBrowser.
+
+ * UserInterface/Views/SidebarPanel.js:
+ (WebInspector.SidebarPanel): Deleted.
+ (WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
+ (WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
+ Remove the per sidebar panel width setting that was added in r195456.
+
+ * UserInterface/Views/TabBrowser.js:
+ (WebInspector.TabBrowser):
+ (WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
+ (WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
+ * UserInterface/Views/TabContentView.js:
+ (WebInspector.TabContentView):
+ (WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
+ Store details sidebar width on TabContentView.
+
2016-07-29 Matt Baker <[email protected]>
Web Inspector: Assertion in NetworkGridContentView when updating data grid for the first time
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js (203911 => 203912)
--- trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js 2016-07-29 18:52:53 UTC (rev 203911)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js 2016-07-29 18:58:23 UTC (rev 203912)
@@ -147,7 +147,6 @@
if (this._selectedSidebarPanel.visible) {
this._selectedSidebarPanel.shown();
this._selectedSidebarPanel.visibilityDidChange();
- this._recalculateWidth(this._selectedSidebarPanel.savedWidth);
}
}
@@ -200,10 +199,9 @@
this._navigationBar.needsLayout();
if (this._selectedSidebarPanel) {
- if (this._selectedSidebarPanel.visible) {
+ if (this._selectedSidebarPanel.visible)
this._selectedSidebarPanel.shown();
- this._recalculateWidth(this._selectedSidebarPanel.savedWidth);
- } else
+ else
this._selectedSidebarPanel.hidden();
this._selectedSidebarPanel.visibilityDidChange();
@@ -266,8 +264,8 @@
_recalculateWidth(newWidth = this.width)
{
// Need to add 1 because of the 1px border-right.
- newWidth = Number.constrain(newWidth, this.minimumWidth + 1, this.maximumWidth);
- this.element.style.width = Math.ceil(newWidth) + "px";
+ newWidth = Math.ceil(Number.constrain(newWidth, this.minimumWidth + 1, this.maximumWidth));
+ this.element.style.width = `${newWidth}px`;
if (!this.collapsed && this._navigationBar)
this._navigationBar.needsLayout();
@@ -275,7 +273,7 @@
if (!this.collapsed && this._selectedSidebarPanel)
this._selectedSidebarPanel.updateLayout(WebInspector.View.LayoutReason.Resize);
- this.dispatchEventToListeners(WebInspector.Sidebar.Event.WidthDidChange);
+ this.dispatchEventToListeners(WebInspector.Sidebar.Event.WidthDidChange, {newWidth});
}
_navigationItemSelected(event)
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js (203911 => 203912)
--- trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js 2016-07-29 18:52:53 UTC (rev 203911)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js 2016-07-29 18:58:23 UTC (rev 203912)
@@ -33,7 +33,6 @@
this._displayName = displayName;
this._selected = false;
- this._widthSetting = new WebInspector.Setting(identifier + "-sidebar-panel-width", 300);
this._savedScrollPosition = 0;
this.element.classList.add("panel", identifier);
@@ -93,11 +92,6 @@
return 0;
}
- get savedWidth()
- {
- return this._widthSetting.value;
- }
-
show()
{
if (!this.parentSidebar)
@@ -151,15 +145,4 @@
{
// Implemented by subclasses.
}
-
- // Protected
-
- sizeDidChange()
- {
- let width = this.element.realOffsetWidth;
- if (width && width !== this._widthSetting.value)
- this._widthSetting.value = width;
-
- // Implemented by subclasses.
- }
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js (203911 => 203912)
--- trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js 2016-07-29 18:52:53 UTC (rev 203911)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js 2016-07-29 18:58:23 UTC (rev 203912)
@@ -43,6 +43,7 @@
if (this._detailsSidebar) {
this._detailsSidebar.addEventListener(WebInspector.Sidebar.Event.CollapsedStateDidChange, this._sidebarCollapsedStateDidChange, this);
this._detailsSidebar.addEventListener(WebInspector.Sidebar.Event.SidebarPanelSelected, this._sidebarPanelSelected, this);
+ this._detailsSidebar.addEventListener(WebInspector.Sidebar.Event.WidthDidChange, this._detailsSidebarWidthDidChange, this);
}
this._contentViewContainer = new WebInspector.ContentViewContainer;
@@ -275,6 +276,19 @@
tabContentView.detailsSidebarCollapsedSetting.value = this._detailsSidebar.collapsed;
}
+ _detailsSidebarWidthDidChange(event)
+ {
+ if (this._ignoreSidebarEvents)
+ return;
+
+ let tabContentView = this.selectedTabContentView;
+ if (!tabContentView)
+ return;
+
+ if (event.target === this._detailsSidebar && event.data)
+ tabContentView.detailsSidebarWidthSetting.value = event.data.newWidth;
+ }
+
_showNavigationSidebarPanelForTabContentView(tabContentView)
{
if (!this._navigationSidebar)
@@ -323,6 +337,9 @@
return;
}
+ if (tabContentView.detailsSidebarWidthSetting.value)
+ this._detailsSidebar.width = tabContentView.detailsSidebarWidthSetting.value;
+
if (tabContentView.managesDetailsSidebarPanels) {
tabContentView.showDetailsSidebarPanels();
this._ignoreSidebarEvents = false;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js (203911 => 203912)
--- trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js 2016-07-29 18:52:53 UTC (rev 203911)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js 2016-07-29 18:58:23 UTC (rev 203912)
@@ -51,6 +51,7 @@
this._detailsSidebarCollapsedSetting = new WebInspector.Setting(identifier + "-details-sidebar-collapsed", true);
this._detailsSidebarSelectedPanelSetting = new WebInspector.Setting(identifier + "-details-sidebar-selected-panel", null);
+ this._detailsSidebarWidthSetting = new WebInspector.Setting(identifier + "-details-sidebar-width", 0);
this._cookieSetting = new WebInspector.Setting(identifier + "-tab-cookie", {});
}
@@ -177,6 +178,11 @@
return this._navigationSidebarCollapsedSetting;
}
+ get detailsSidebarWidthSetting()
+ {
+ return this._detailsSidebarWidthSetting;
+ }
+
get detailsSidebarPanels()
{
return this._detailsSidebarPanels;