| Index: Source/devtools/front_end/elements/ElementsTreeElement.js
|
| diff --git a/Source/devtools/front_end/elements/ElementsTreeElement.js b/Source/devtools/front_end/elements/ElementsTreeElement.js
|
| index 80a38f371509baeb4425564fd393c7825819917f..ec4d823a166df6d6c65aa7f66490c3f6ef561306 100644
|
| --- a/Source/devtools/front_end/elements/ElementsTreeElement.js
|
| +++ b/Source/devtools/front_end/elements/ElementsTreeElement.js
|
| @@ -40,8 +40,9 @@ WebInspector.ElementsTreeElement = function(node, elementCloseTag)
|
| TreeElement.call(this);
|
| this._node = node;
|
|
|
| - this._decorationsElement = createElementWithClass("div", "hidden");
|
| - this.listItemElement.appendChild(this._decorationsElement);
|
| + this._gutterContainer = this.listItemElement.createChild("div", "gutter-container");
|
| + this._decorationsElement = this._gutterContainer.createChild("div", "hidden");
|
| + this._decorationsElement.addEventListener("mousedown", this._decorationsClicked.bind(this));
|
|
|
| this._elementCloseTag = elementCloseTag;
|
|
|
| @@ -164,6 +165,19 @@ WebInspector.ElementsTreeElement.prototype = {
|
| },
|
|
|
| /**
|
| + * @return {!Element}
|
| + */
|
| + gutterElement: function()
|
| + {
|
| + return this._gutterContainer;
|
| + },
|
| +
|
| + _decorationsClicked: function()
|
| + {
|
| + this.treeOutline.dispatchEventToListeners(WebInspector.ElementsTreeOutline.Events.DecorationsClicked, this._node);
|
| + },
|
| +
|
| + /**
|
| * @param {string} searchQuery
|
| */
|
| highlightSearchResults: function(searchQuery)
|
| @@ -772,10 +786,11 @@ WebInspector.ElementsTreeElement.prototype = {
|
|
|
| /**
|
| * @param {function(string, string)} commitCallback
|
| + * @param {function()} disposeCallback
|
| * @param {?Protocol.Error} error
|
| * @param {string} initialValue
|
| */
|
| - _startEditingAsHTML: function(commitCallback, error, initialValue)
|
| + _startEditingAsHTML: function(commitCallback, disposeCallback, error, initialValue)
|
| {
|
| if (error)
|
| return;
|
| @@ -824,6 +839,7 @@ WebInspector.ElementsTreeElement.prototype = {
|
| */
|
| function dispose()
|
| {
|
| + disposeCallback();
|
| delete this._editing;
|
| this.treeOutline.setMultilineEditing(null);
|
|
|
| @@ -1067,7 +1083,7 @@ WebInspector.ElementsTreeElement.prototype = {
|
| highlightElement.appendChild(nodeInfo);
|
| this.title = highlightElement;
|
| this.updateDecorations();
|
| - this.listItemElement.insertBefore(this._decorationsElement, this.listItemElement.firstChild);
|
| + this.listItemElement.insertBefore(this._gutterContainer, this.listItemElement.firstChild);
|
| delete this._highlightResult;
|
| }
|
|
|
| @@ -1120,12 +1136,12 @@ WebInspector.ElementsTreeElement.prototype = {
|
| (n === node ? decorations : descendantDecorations).push(decoration);
|
| }
|
|
|
| - Promise.all(promises).then(setTitle.bind(this));
|
| + Promise.all(promises).then(updateDecorationsUI.bind(this));
|
|
|
| /**
|
| * @this {WebInspector.ElementsTreeElement}
|
| */
|
| - function setTitle()
|
| + function updateDecorationsUI()
|
| {
|
| this._decorationsElement.removeChildren();
|
| this._decorationsElement.classList.add("hidden");
|
| @@ -1161,6 +1177,8 @@ WebInspector.ElementsTreeElement.prototype = {
|
| processColors.call(this, descendantColors, "elements-gutter-decoration elements-has-decorated-children");
|
| WebInspector.Tooltip.install(this._decorationsElement, titles);
|
|
|
| + this._gutterContainer.classList.toggle("has-decorations", this._decorationsElement.hasChildNodes());
|
| +
|
| /**
|
| * @param {!Set<string>} colors
|
| * @param {string} className
|
| @@ -1533,8 +1551,14 @@ WebInspector.ElementsTreeElement.prototype = {
|
| node.setOuterHTML(value, selectNode);
|
| }
|
|
|
| + function disposeCallback()
|
| + {
|
| + if (callback)
|
| + callback(false);
|
| + }
|
| +
|
| var node = this._node;
|
| - node.getOuterHTML(this._startEditingAsHTML.bind(this, commitChange));
|
| + node.getOuterHTML(this._startEditingAsHTML.bind(this, commitChange, disposeCallback));
|
| },
|
|
|
| _copyCSSPath: function()
|
|
|