Changeset 120838 in webkit


Ignore:
Timestamp:
Jun 20, 2012 11:11:09 AM (12 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: Timeline label bar jiggles when scrolling
https://bugs.webkit.org/show_bug.cgi?id=89579

Reviewed by Vsevolod Vlasov.

Adding timeline header into the timeline panel and settings its position
to absolute. Drive-by fix that updates rulers on sidebar resize.

  • inspector/front-end/TimelineGrid.js:

(WebInspector.TimelineGrid):
(WebInspector.TimelineGrid.prototype.get gridHeaderElement):
(WebInspector.TimelineGrid.prototype.addEventDividers):
(WebInspector.TimelineGrid.prototype.setScrollAndDividerTop):

  • inspector/front-end/TimelineOverviewPane.js:

(WebInspector.TimelineOverviewPane.prototype.sidebarResized):

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype.sidebarResized):
(WebInspector.TimelinePanel.prototype.onResize):

  • inspector/front-end/timelinePanel.css:

(#timeline-grid-header):

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r120837 r120838  
     12012-06-20  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: Timeline label bar jiggles when scrolling
     4        https://bugs.webkit.org/show_bug.cgi?id=89579
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Adding timeline header into the timeline panel and settings its position
     9        to absolute. Drive-by fix that updates rulers on sidebar resize.
     10
     11        * inspector/front-end/TimelineGrid.js:
     12        (WebInspector.TimelineGrid):
     13        (WebInspector.TimelineGrid.prototype.get gridHeaderElement):
     14        (WebInspector.TimelineGrid.prototype.addEventDividers):
     15        (WebInspector.TimelineGrid.prototype.setScrollAndDividerTop):
     16        * inspector/front-end/TimelineOverviewPane.js:
     17        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
     18        * inspector/front-end/TimelinePanel.js:
     19        (WebInspector.TimelinePanel):
     20        (WebInspector.TimelinePanel.prototype.sidebarResized):
     21        (WebInspector.TimelinePanel.prototype.onResize):
     22        * inspector/front-end/timelinePanel.css:
     23        (#timeline-grid-header):
     24
    1252012-06-20  Ian Vollick  <vollick@chromium.org>
    226
  • trunk/Source/WebCore/inspector/front-end/TimelineGrid.js

    r113314 r120838  
    4444    this.element.appendChild(this._dividersElement);
    4545
     46    this._gridHeaderElement = document.createElement("div");
     47
    4648    this._eventDividersElement = document.createElement("div");
    4749    this._eventDividersElement.className = "resources-event-dividers";
    48     this.element.appendChild(this._eventDividersElement);
     50    this._gridHeaderElement.appendChild(this._eventDividersElement);
    4951
    5052    this._dividersLabelBarElement = document.createElement("div");
    5153    this._dividersLabelBarElement.className = "resources-dividers-label-bar";
    52     this.element.appendChild(this._dividersLabelBarElement);
     54    this._gridHeaderElement.appendChild(this._dividersLabelBarElement);
     55
     56    this.element.appendChild(this._gridHeaderElement);
    5357}
    5458
     
    6266    {
    6367        return this._dividersElement;
     68    },
     69
     70    get gridHeaderElement()
     71    {
     72        return this._gridHeaderElement;
    6473    },
    6574
     
    159168    addEventDividers: function(dividers)
    160169    {
    161         this.element.removeChild(this._eventDividersElement);
     170        this._gridHeaderElement.removeChild(this._eventDividersElement);
    162171        for (var i = 0; i < dividers.length; ++i) {
    163172            if (dividers[i])
    164173                this._eventDividersElement.appendChild(dividers[i]);
    165174        }
    166         this.element.appendChild(this._eventDividersElement);
     175        this._gridHeaderElement.appendChild(this._eventDividersElement);
    167176    },
    168177
     
    185194    {
    186195        this._dividersElement.style.top = scrollTop + "px";
    187         this._eventDividersElement.style.top = scrollTop + "px";
    188         this._dividersLabelBarElement.style.top = dividersTop + "px";
    189196    }
    190197}
  • trunk/Source/WebCore/inspector/front-end/TimelineOverviewPane.js

    r120465 r120838  
    233233        this._overviewContainer.style.left = width + "px";
    234234        this._topPaneSidebarElement.style.width = width + "px";
     235        this._update();
    235236    },
    236237
  • trunk/Source/WebCore/inspector/front-end/TimelinePanel.js

    r120338 r120838  
    7878    this._itemsGraphsElement.id = "timeline-graphs";
    7979    this._containerContentElement.appendChild(this._timelineGrid.element);
     80    this._timelineGrid.gridHeaderElement.id = "timeline-grid-header";
    8081    this._memoryStatistics.setMainTimelineGrid(this._timelineGrid);
     82    this.element.appendChild(this._timelineGrid.gridHeaderElement);
    8183
    8284    this._topGapElement = document.createElement("div");
     
    105107    this._scrollTop = 0;
    106108
    107     this._popoverHelper = new WebInspector.PopoverHelper(this._containerElement, this._getPopoverAnchor.bind(this), this._showPopover.bind(this));
    108     this._containerElement.addEventListener("mousemove", this._mouseMove.bind(this), false);
    109     this._containerElement.addEventListener("mouseout", this._mouseOut.bind(this), false);
     109    this._popoverHelper = new WebInspector.PopoverHelper(this.element, this._getPopoverAnchor.bind(this), this._showPopover.bind(this));
     110    this.element.addEventListener("mousemove", this._mouseMove.bind(this), false);
     111    this.element.addEventListener("mouseout", this._mouseOut.bind(this), false);
    110112
    111113    // Disable short events filter by default.
     
    508510        this.statusBarFilters.style.left = Math.max((this.statusBarItems.length + 2) * 31, width) + "px";
    509511        this._memoryStatistics.setSidebarWidth(width);
     512        this._timelineGrid.gridHeaderElement.style.left = width + "px";
     513        this._timelineGrid.gridHeaderElement.style.width = this._itemsGraphsElement.offsetWidth + "px";
    510514    },
    511515
     
    514518        this._closeRecordDetails();
    515519        this._scheduleRefresh(false);
     520        this._timelineGrid.gridHeaderElement.style.width = this._itemsGraphsElement.offsetWidth + "px";
    516521    },
    517522
  • trunk/Source/WebCore/inspector/front-end/inspectorCommon.css

    r120449 r120838  
    7272    position: absolute;
    7373    left: 0;
    74     right: 5px;
     74    right: 0;
    7575    height: 100%;
    7676    top: 0;
  • trunk/Source/WebCore/inspector/front-end/timelinePanel.css

    r120338 r120838  
    591591.timeline-frame-container {
    592592    height: 19px;
    593 }
    594 
    595 .timeline-frame-strip {
    596     position: absolute;
    597     height: 19px;
     593    overflow: hidden;
    598594    background-color: rgb(220, 220, 220);
    599595    opacity: 0.6;
     
    604600    pointer-events: auto;
    605601}
     602
     603.timeline-frame-strip {
     604    position: absolute;
     605    height: 19px;
     606}
     607
     608#timeline-grid-header {
     609    position: absolute;
     610    left: 200px;
     611    right: 0;
     612    top: 90px;
     613    bottom: 0;
     614    pointer-events: none;
     615}
Note: See TracChangeset for help on using the changeset viewer.