Title: [169067] trunk/Source/WebInspectorUI
Revision
169067
Author
[email protected]
Date
2014-05-19 14:19:49 -0700 (Mon, 19 May 2014)

Log Message

Web Inspector: Inspect Element sometimes does not select the right DOM Node
https://bugs.webkit.org/show_bug.cgi?id=127938

Patch by Jono Wells <[email protected]> on 2014-05-19
Reviewed by Joseph Pecoraro.

Inspecting an element when the inspector is in a closed state was selecting the node but then
overriding the selection when DOMTreeContentView#_restoreSelectedNodeAfterUpdate was called.
Now when an element is inspected a flag prevents the restore from taking place.

* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype.inspectElement):
(WebInspector.DOMTreeManager.prototype.inspectNodeObject):
Add WebInspector.DOMTreeManager#_restoreSelectedNodeIsAllowed.

(WebInspector.DOMTreeManager.prototype.get restoreSelectedNodeIsAllowed):
Added.

* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
Add check for WebInspector.domTreeManager.restoreSelectedNodeIsAllowed.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (169066 => 169067)


--- trunk/Source/WebInspectorUI/ChangeLog	2014-05-19 21:17:06 UTC (rev 169066)
+++ trunk/Source/WebInspectorUI/ChangeLog	2014-05-19 21:19:49 UTC (rev 169067)
@@ -1,3 +1,27 @@
+2014-05-19  Jono Wells  <[email protected]>
+
+        Web Inspector: Inspect Element sometimes does not select the right DOM Node
+        https://bugs.webkit.org/show_bug.cgi?id=127938
+
+        Reviewed by Joseph Pecoraro.
+
+        Inspecting an element when the inspector is in a closed state was selecting the node but then 
+        overriding the selection when DOMTreeContentView#_restoreSelectedNodeAfterUpdate was called.
+        Now when an element is inspected a flag prevents the restore from taking place.
+
+        * UserInterface/Controllers/DOMTreeManager.js:
+        (WebInspector.DOMTreeManager):
+        (WebInspector.DOMTreeManager.prototype.inspectElement):
+        (WebInspector.DOMTreeManager.prototype.inspectNodeObject):
+        Add WebInspector.DOMTreeManager#_restoreSelectedNodeIsAllowed.
+
+        (WebInspector.DOMTreeManager.prototype.get restoreSelectedNodeIsAllowed):
+        Added.
+
+        * UserInterface/Views/FrameDOMTreeContentView.js:
+        (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
+        Add check for WebInspector.domTreeManager.restoreSelectedNodeIsAllowed.
+
 2014-05-15  Jono Wells  <[email protected]>
 
         Web Inspector: Should remove JSDoc comment blocks.

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js (169066 => 169067)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js	2014-05-19 21:17:06 UTC (rev 169066)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js	2014-05-19 21:19:49 UTC (rev 169067)
@@ -36,6 +36,7 @@
     this._attributeLoadNodeIds = {};
     this._flows = new Map;
     this._contentNodesToFlowsMap = new Map;
+    this._restoreSelectedNodeIsAllowed = true;
 };
 
 WebInspector.Object.addConstructorFunctions(WebInspector.DOMTreeManager);
@@ -263,8 +264,15 @@
             this._unbind(node.children[i]);
     },
 
+    get restoreSelectedNodeIsAllowed()
+    {
+        return this._restoreSelectedNodeIsAllowed;
+    },
+
     inspectElement: function(nodeId)
     {
+        this._restoreSelectedNodeIsAllowed = true;
+
         var node = this._idToDOMNode[nodeId];
         if (node)
             this.dispatchEventToListeners(WebInspector.DOMTreeManager.Event.DOMNodeWasInspected, {node: node});
@@ -275,6 +283,8 @@
 
     inspectNodeObject: function(remoteObject)
     {
+        this._restoreSelectedNodeIsAllowed = false;
+
         function nodeAvailable(nodeId)
         {
             remoteObject.release();

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js (169066 => 169067)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2014-05-19 21:17:06 UTC (rev 169066)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2014-05-19 21:19:49 UTC (rev 169067)
@@ -293,6 +293,9 @@
 
     _restoreSelectedNodeAfterUpdate: function(documentURL, defaultNode)
     {
+        if (!WebInspector.domTreeManager.restoreSelectedNodeIsAllowed)
+            return;
+
         function selectNode(lastSelectedNode)
         {
             var nodeToFocus = lastSelectedNode;
@@ -313,6 +316,8 @@
 
         function selectLastSelectedNode(nodeId)
         {
+            if (!WebInspector.domTreeManager.restoreSelectedNodeIsAllowed)
+                return;
             selectNode.call(this, WebInspector.domTreeManager.nodeForId(nodeId));
         }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to