Chromium Code Reviews| Index: Source/devtools/front_end/Layers3DView.js |
| diff --git a/Source/devtools/front_end/Layers3DView.js b/Source/devtools/front_end/Layers3DView.js |
| index 0ba03ccf3652e9198f5530eba4362e9a849770e6..3c4a52ff1576908f6106248f738a5dc35a8d6433 100644 |
| --- a/Source/devtools/front_end/Layers3DView.js |
| +++ b/Source/devtools/front_end/Layers3DView.js |
| @@ -50,6 +50,7 @@ WebInspector.Layers3DView = function(model) |
| this.element.addEventListener("dblclick", this._onDoubleClick.bind(this), false); |
| this.element.addEventListener("click", this._onClick.bind(this), false); |
| this._elementsByLayerId = {}; |
| + this._scrollRectElementsByLayerId = {} |
| this._rotateX = 0; |
| this._rotateY = 0; |
| this._scaleAdjustmentStylesheet = this.element.ownerDocument.head.createChild("style"); |
| @@ -82,6 +83,15 @@ WebInspector.Layers3DView.PaintRectColors = [ |
| WebInspector.Color.fromRGBA([0, 0xFF, 0, 0x3F]) |
| ] |
| +/** |
| + * @enum {string} |
| + */ |
| +WebInspector.Layers3DView.ScrollRectTitles = { |
| + NonFastScrollable: "repaints on scroll", |
|
caseq
2014/02/20 09:34:06
Use WebInspector.UIString()
|
| + TouchEventHandler: "touch event listener", |
| + WheelEventHandler: "mousewheel event listener" |
| +} |
| + |
| WebInspector.Layers3DView.prototype = { |
| onResize: function() |
| { |
| @@ -211,6 +221,7 @@ WebInspector.Layers3DView.prototype = { |
| } |
| this._scaleToFit(); |
| this._model.forEachLayer(updateLayer.bind(this), this._model.contentRoot()); |
| + this._paintScrollRects(); |
| this._needsUpdate = false; |
| }, |
| @@ -284,6 +295,61 @@ WebInspector.Layers3DView.prototype = { |
| } |
| }, |
| + _createScrollRectElement: function(scrollRect) |
| + { |
| + var element = document.createElement("div"); |
| + var style = element.style; |
| + var parentLayerElement = this._model._layersById[scrollRect.layerId].nodeId() ? this._elementsByLayerId[scrollRect.layerId] : |
| + this._elementsByLayerId[this._model.contentRoot().id()]; |
| + element.className = "scroll-rect"; |
| + element.title = WebInspector.Layers3DView.ScrollRectTitles[scrollRect.type]; |
| + style.width = scrollRect.width + "px"; |
| + style.height = scrollRect.height + "px"; |
| + style.left = scrollRect.x + "px"; |
| + style.top = scrollRect.y + "px"; |
| + var color = WebInspector.Color.fromRGBA([0xB2, 0, 0, 0.2]); |
|
caseq
2014/02/20 09:34:06
Do this as part of scroll-rect CSS class instead.
|
| + style.backgroundColor = color.toString(WebInspector.Color.Format.RGBA) || ""; |
| + color = WebInspector.Color.fromRGBA([0xB2, 0, 0, 1]); |
| + style.borderColor = color.toString(WebInspector.Color.Format.RGBA) || ""; |
| + style.borderWidth = "1px"; |
| + parentLayerElement.appendChild(element); |
| + element._scrollRect = scrollRect; |
| + return element; |
| + }, |
| + |
| + _paintScrollRects: function() |
| + { |
| + var i, layerId; |
| + for (layerId in this._scrollRectElementsByLayerId) { |
| + if (!this._model._scrollRectsByLayerId[layerId]) { |
| + for (i = 0; i < this._scrollRectElementsByLayerId[layerId].length; ++i) { |
| + this._scrollRectElementsByLayerId[layerId][i].remove(); |
| + } |
| + delete this._scrollRectElementsByLayerId[layerId]; |
| + } |
| + } |
| + for (layerId in this._model._scrollRectsByLayerId) { |
| + if (!this._scrollRectElementsByLayerId[layerId]) |
| + this._scrollRectElementsByLayerId[layerId] = []; |
| + for (i = 0; i < this._model._scrollRectsByLayerId[layerId].length; ++i) { |
| + if (i >= this._scrollRectElementsByLayerId[layerId].length) { |
| + this._scrollRectElementsByLayerId[layerId].push( |
| + this._createScrollRectElement(this._model._scrollRectsByLayerId[layerId][i])); |
| + } else if (this._model._scrollRectsByLayerId[layerId][i] != this._scrollRectElementsByLayerId[layerId][i]) { |
| + this._scrollRectElementsByLayerId[layerId][i].remove(); |
| + this._scrollRectElementsByLayerId[layerId][i] = |
| + this._createScrollRectElement(this._model._scrollRectsByLayerId[layerId][i]); |
| + } |
| + } |
| + if (this._scrollRectElementsByLayerId[layerId].length > this._model._scrollRectsByLayerId[layerId].length) { |
|
caseq
2014/02/20 09:34:06
No need for this if.
|
| + for (i = this._model._scrollRectsByLayerId[layerId].length; i < this._scrollRectElementsByLayerId[layerId].length; ++i) |
| + this._scrollRectElementsByLayerId[layerId][i].remove(); |
| + this._scrollRectElementsByLayerId[layerId].splice(this._model._scrollRectsByLayerId[layerId].length, |
|
caseq
2014/02/20 09:34:06
How about
this._scrollRectElementsByLayerId[layer
|
| + this._scrollRectElementsByLayerId[layerId].length - this._model._scrollRectsByLayerId[layerId].length); |
| + } |
| + } |
| + }, |
| + |
| _updatePaintRect: function(element) |
| { |
| var details = element.__layerDetails; |