Title: [185141] trunk/Source/WebInspectorUI
Revision
185141
Author
commit-qu...@webkit.org
Date
2015-06-02 22:46:56 -0700 (Tue, 02 Jun 2015)

Log Message

Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
https://bugs.webkit.org/show_bug.cgi?id=145591

Patch by Joseph Pecoraro <pecor...@apple.com> on 2015-06-02
Reviewed by Timothy Hatcher.

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.removeSidebarPanel):
When removing a sidebar panel, ensure we call hidden if it was the visible panel.

* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.shown):
(WebInspector.SidebarPanel.prototype.hidden):
Save and restore content element scroll position when sidebar panels are shown / hidden.

* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.shown):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel.prototype.shown):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`!

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (185140 => 185141)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-06-03 05:46:56 UTC (rev 185141)
@@ -1,3 +1,31 @@
+2015-06-02  Joseph Pecoraro  <pecor...@apple.com>
+
+        Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
+        https://bugs.webkit.org/show_bug.cgi?id=145591
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/Sidebar.js:
+        (WebInspector.Sidebar.prototype.removeSidebarPanel):
+        When removing a sidebar panel, ensure we call hidden if it was the visible panel.
+
+        * UserInterface/Views/SidebarPanel.js:
+        (WebInspector.SidebarPanel):
+        (WebInspector.SidebarPanel.prototype.shown):
+        (WebInspector.SidebarPanel.prototype.hidden):
+        Save and restore content element scroll position when sidebar panels are shown / hidden.
+
+        * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
+        (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
+        * UserInterface/Views/ComputedStyleDetailsPanel.js:
+        (WebInspector.ComputedStyleDetailsPanel.prototype.shown):
+        * UserInterface/Views/DetailsSidebarPanel.js:
+        (WebInspector.DetailsSidebarPanel.prototype.shown):
+        * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
+        (WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
+        (WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
+        Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`!
+
 2015-06-02  Nikita Vasilyev  <nvasil...@apple.com>
 
         Web Inspector: Use non-monospace font for the frame selector

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -111,7 +111,7 @@
 
     visibilityDidChange()
     {
-        WebInspector.SidebarPanel.prototype.visibilityDidChange.call(this);
+        super.visibilityDidChange();
 
         if (!this._selectedPanel)
             return;

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -159,7 +159,7 @@
 
     shown()
     {
-        WebInspector.StyleDetailsPanel.prototype.shown.call(this);
+        super.shown();
 
         this._propertiesTextEditor.updateLayout();
     }

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -49,8 +49,10 @@
 
     shown()
     {
+        super.shown();
+
         if (this._needsRefresh) {
-            delete this._needsRefresh;
+            this._needsRefresh = false;
             this.refresh();
         }
     }

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -52,14 +52,14 @@
 
         this.needsRefresh();
 
-        WebInspector.DOMDetailsSidebarPanel.prototype.shown.call(this);
+        super.shown();
     }
 
     hidden()
     {
         WebInspector.layerTreeManager.removeEventListener(WebInspector.LayerTreeManager.Event.LayerTreeDidChange, this._layerTreeDidChange, this);
 
-        WebInspector.DOMDetailsSidebarPanel.prototype.hidden.call(this);
+        super.hidden();
     }
 
     refresh()

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -93,6 +93,11 @@
 
         sidebarPanel.willRemove();
 
+        if (sidebarPanel.visible) {
+            sidebarPanel.hidden();
+            sidebarPanel.visibilityDidChange();
+        }
+
         sidebarPanel._parentSidebar = null;
 
         if (this._selectedSidebarPanel === sidebarPanel) {

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js (185140 => 185141)


--- trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js	2015-06-03 03:39:27 UTC (rev 185140)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js	2015-06-03 05:46:56 UTC (rev 185141)
@@ -31,6 +31,8 @@
 
         this._identifier = identifier;
 
+        this._savedScrollPosition = 0;
+
         this._element = element || document.createElement("div");
         this._element.classList.add("panel", identifier);
 
@@ -129,11 +131,15 @@
 
     shown()
     {
+        this._contentElement.scrollTop = this._savedScrollPosition;
+
         // Implemented by subclasses.
     }
 
     hidden()
     {
+        this._savedScrollPosition = this._contentElement.scrollTop;
+
         // Implemented by subclasses.
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to