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..1656c44b0d8e89ee8657aeaa1663e419df0f16f4 100644 |
--- a/Source/devtools/front_end/elements/ElementsTreeElement.js |
+++ b/Source/devtools/front_end/elements/ElementsTreeElement.js |
@@ -266,9 +266,29 @@ WebInspector.ElementsTreeElement.prototype = { |
listItemElement.insertBefore(this.selectionElement, listItemElement.firstChild); |
} |
+ this._updateActionsToolbar(); |
this.selectionElement.style.height = listItemElement.offsetHeight + "px"; |
}, |
+ _updateActionsToolbar: function() |
+ { |
+ if (!Runtime.experiments.isEnabled("materialDesign")) |
+ return; |
+ var actionsToolbar = this.treeOutline.nodeActionsElement(); |
+ if (this.selected && this._node.nodeType() === Node.ELEMENT_NODE && actionsToolbar.parentElement !== this.listItemElement) { |
+ this.listItemElement.insertBefore(actionsToolbar, this.selectionElement.nextSibling); |
+ delete this._forceShowActions; |
+ } |
+ |
+ if (actionsToolbar.parentElement === this.listItemElement) { |
+ actionsToolbar.classList.toggle("markers-present", this._decorationsElement.hasChildNodes()); |
+ if (!this.treeOutline.nodeActionsVisible() && this._decorationsElement.hasChildNodes()) { |
+ this.treeOutline.toggleNodeActions(true); |
+ this._forceShowActions = true; |
+ } |
+ } |
+ }, |
+ |
/** |
* @override |
*/ |
@@ -772,10 +792,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 +845,7 @@ WebInspector.ElementsTreeElement.prototype = { |
*/ |
function dispose() |
{ |
+ disposeCallback(); |
delete this._editing; |
this.treeOutline.setMultilineEditing(null); |
@@ -1120,7 +1142,7 @@ WebInspector.ElementsTreeElement.prototype = { |
(n === node ? decorations : descendantDecorations).push(decoration); |
} |
- Promise.all(promises).then(setTitle.bind(this)); |
+ Promise.all(promises).then(setTitle.bind(this)).then(this._updateActionsToolbar.bind(this)); |
/** |
* @this {WebInspector.ElementsTreeElement} |
@@ -1533,8 +1555,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() |