Changeset 237196 in webkit


Ignore:
Timestamp:
Oct 16, 2018 12:13:15 PM (6 years ago)
Author:
Devin Rousso
Message:

Web Inspector: Canvas recording sidebar scroll position lost after switching tabs
https://bugs.webkit.org/show_bug.cgi?id=190482

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.removeSidebarPanel):
(WI.Sidebar.prototype.set selectedSidebarPanel):
Call hidden before setting selected to false, as that sets display: none; on the
element, which sets the scrollTop to 0.

  • UserInterface/Views/SidebarPanel.js:

(WI.SidebarPanel.prototype.shown):
(WI.SidebarPanel.prototype.hidden):
(WI.SidebarPanel.prototype.get scrollElement): Added.
Allow subclasses to specify the scrolling element for saving/restoring the scroll position.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.get scrollElement): Added.

  • UserInterface/Views/RecordingStateDetailsSidebarPanel.js:

(WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): Added.

Location:
trunk/Source/WebInspectorUI
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebInspectorUI/ChangeLog

    r237195 r237196  
     12018-10-16  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: Canvas recording sidebar scroll position lost after switching tabs
     4        https://bugs.webkit.org/show_bug.cgi?id=190482
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        * UserInterface/Views/Sidebar.js:
     9        (WI.Sidebar.prototype.removeSidebarPanel):
     10        (WI.Sidebar.prototype.set selectedSidebarPanel):
     11        Call `hidden` before setting `selected` to `false`, as that sets `display: none;` on the
     12        element, which sets the `scrollTop` to `0`.
     13
     14        * UserInterface/Views/SidebarPanel.js:
     15        (WI.SidebarPanel.prototype.shown):
     16        (WI.SidebarPanel.prototype.hidden):
     17        (WI.SidebarPanel.prototype.get scrollElement): Added.
     18        Allow subclasses to specify the scrolling element for saving/restoring the scroll position.
     19
     20        * UserInterface/Views/CanvasSidebarPanel.js:
     21        (WI.CanvasSidebarPanel.prototype.get scrollElement): Added.
     22        * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
     23        (WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): Added.
     24
    1252018-10-16  Devin Rousso  <drousso@apple.com>
    226
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js

    r236952 r237196  
    223223    // Protected
    224224
     225    get scrollElement()
     226    {
     227        return this._recordingContentContainer;
     228    }
     229
    225230    hasCustomFilters()
    226231    {
  • trunk/Source/WebInspectorUI/UserInterface/Views/RecordingStateDetailsSidebarPanel.js

    r228301 r237196  
    7373
    7474        this.updateLayoutIfNeeded();
     75    }
     76
     77    // Protected
     78
     79    get scrollElement()
     80    {
     81        return this._dataGrid.scrollContainer;
    7582    }
    7683
  • trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js

    r225547 r237196  
    9494            return;
    9595
    96         sidebarPanel.selected = false;
    97 
    9896        if (sidebarPanel.visible) {
    9997            sidebarPanel.hidden();
     
    10199        }
    102100
     101        sidebarPanel.selected = false;
     102
    103103        if (this._selectedSidebarPanel === sidebarPanel) {
    104104            var index = this._sidebarPanels.indexOf(sidebarPanel);
     
    127127
    128128        if (this._selectedSidebarPanel) {
    129             var wasVisible = this._selectedSidebarPanel.visible;
    130 
    131             this._selectedSidebarPanel.selected = false;
    132 
    133             if (wasVisible) {
     129            if (this._selectedSidebarPanel.visible) {
    134130                this._selectedSidebarPanel.hidden();
    135131                this._selectedSidebarPanel.visibilityDidChange();
    136132            }
     133
     134            this._selectedSidebarPanel.selected = false;
    137135        }
    138136
  • trunk/Source/WebInspectorUI/UserInterface/Views/SidebarPanel.js

    r222420 r237196  
    9595    shown()
    9696    {
    97         this._contentView.element.scrollTop = this._savedScrollPosition;
     97        this.scrollElement.scrollTop = this._savedScrollPosition;
    9898
    9999        // FIXME: remove once <https://webkit.org/b/150741> is fixed.
     
    105105    hidden()
    106106    {
    107         this._savedScrollPosition = this._contentView.element.scrollTop;
     107        this._savedScrollPosition = this.scrollElement.scrollTop;
    108108
    109109        // Implemented by subclasses.
     
    114114        // Implemented by subclasses.
    115115    }
     116
     117    // Protected
     118
     119    get scrollElement()
     120    {
     121        // Overridden by sub-classes if needed.
     122        return this.contentView.element;
     123    }
    116124};
Note: See TracChangeset for help on using the changeset viewer.