Title: [203912] trunk/Source/WebInspectorUI
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;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to