| Index: third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| index 9fcec9a5ff7cae8b66fd405141e6e665700340ae..0bfe0f8ebc38d5a87e471926935fce1ab93cfee3 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| @@ -7,7 +7,7 @@
|
| /**
|
| * @constructor
|
| * @extends {WebInspector.VBox}
|
| - * @implements {WebInspector.ViewportControl.Provider}
|
| + * @implements {WebInspector.StaticViewportControl.Provider}
|
| * @param {!WebInspector.FilteredListWidget.Delegate} delegate
|
| */
|
| WebInspector.FilteredListWidget = function(delegate)
|
| @@ -33,7 +33,7 @@ WebInspector.FilteredListWidget = function(delegate)
|
| promptProxy.classList.add("filtered-list-widget-prompt-element");
|
|
|
| this._filteredItems = [];
|
| - this._viewportControl = new WebInspector.ViewportControl(this);
|
| + this._viewportControl = new WebInspector.StaticViewportControl(this);
|
| this._itemElementsContainer = this._viewportControl.element;
|
| this._itemElementsContainer.classList.add("container");
|
| this._itemElementsContainer.addEventListener("click", this._onClick.bind(this), false);
|
| @@ -47,6 +47,9 @@ WebInspector.FilteredListWidget = function(delegate)
|
| this._updateShowMatchingItems();
|
| this._viewportControl.refresh();
|
| this._prompt.autoCompleteSoon(true);
|
| +
|
| + /** @typedef {!Array.<!Element>} */
|
| + this._elements = [];
|
| }
|
|
|
| /**
|
| @@ -249,6 +252,7 @@ WebInspector.FilteredListWidget.prototype = {
|
| break;
|
| }
|
| }
|
| + this._elements = [];
|
| this._viewportControl.invalidate();
|
| if (!query)
|
| this._selectedIndexInFiltered = 0;
|
| @@ -343,7 +347,7 @@ WebInspector.FilteredListWidget.prototype = {
|
| this._selectedElement.classList.remove("selected");
|
| this._viewportControl.scrollItemIntoView(index, makeLast);
|
| this._selectedIndexInFiltered = index;
|
| - this._selectedElement = this._viewportControl.renderedElementAt(index);
|
| + this._selectedElement = this._elements[index];
|
| if (this._selectedElement)
|
| this._selectedElement.classList.add("selected");
|
| },
|
| @@ -379,7 +383,7 @@ WebInspector.FilteredListWidget.prototype = {
|
| if (!this._rowHeight) {
|
| var delegateIndex = this._filteredItems[index];
|
| var element = this._createItemElement(delegateIndex);
|
| - this._rowHeight = WebInspector.measurePreferredSize(element, this._viewportControl.contentElement()).height;
|
| + this._rowHeight = WebInspector.measurePreferredSize(element, this._itemElementsContainer).height;
|
| }
|
| return this._rowHeight;
|
| },
|
| @@ -387,22 +391,13 @@ WebInspector.FilteredListWidget.prototype = {
|
| /**
|
| * @override
|
| * @param {number} index
|
| - * @return {!WebInspector.ViewportElement}
|
| + * @return {!Element}
|
| */
|
| itemElement: function(index)
|
| {
|
| - var delegateIndex = this._filteredItems[index];
|
| - var element = this._createItemElement(delegateIndex);
|
| - return new WebInspector.StaticViewportElement(element);
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @return {number}
|
| - */
|
| - minimumRowHeight: function()
|
| - {
|
| - return this.fastHeight(0);
|
| + if (!this._elements[index])
|
| + this._elements[index] = this._createItemElement(this._filteredItems[index]);
|
| + return this._elements[index];
|
| },
|
|
|
| __proto__: WebInspector.VBox.prototype
|
|
|