Web Inspector: REGRESSION (r238599): unable to select specific timeline
authormattbaker@apple.com <mattbaker@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Dec 2018 03:50:25 +0000 (03:50 +0000)
committermattbaker@apple.com <mattbaker@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Dec 2018 03:50:25 +0000 (03:50 +0000)
https://bugs.webkit.org/show_bug.cgi?id=192443
<rdar://problem/46608087>

Reviewed by Joseph Pecoraro.

When determining the trailing horizontal edge for TreeElement mouse
events, TreeOutline should not assume that its containing DOM element
is only as wide as its <ol> element.

* UserInterface/Views/TreeOutline.js:
(WI.TreeOutline.prototype.treeElementFromEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/Views/TreeOutline.js

index 2583694..183e7ff 100644 (file)
@@ -1,5 +1,20 @@
 2018-12-10  Matt Baker  <mattbaker@apple.com>
 
+        Web Inspector: REGRESSION (r238599): unable to select specific timeline
+        https://bugs.webkit.org/show_bug.cgi?id=192443
+        <rdar://problem/46608087>
+
+        Reviewed by Joseph Pecoraro.
+
+        When determining the trailing horizontal edge for TreeElement mouse
+        events, TreeOutline should not assume that its containing DOM element
+        is only as wide as its <ol> element.
+
+        * UserInterface/Views/TreeOutline.js:
+        (WI.TreeOutline.prototype.treeElementFromEvent):
+
+2018-12-10  Matt Baker  <mattbaker@apple.com>
+
         Web Inspector: Move TreeOutlineGroup coordination out of TreeElement
         https://bugs.webkit.org/show_bug.cgi?id=192487
         <rdar://problem/46543431>
index 72f2cfd..baea55d 100644 (file)
@@ -888,12 +888,18 @@ WI.TreeOutline = class TreeOutline extends WI.Object
 
     treeElementFromEvent(event)
     {
-        let scrollContainer = this.element.parentElement;
-
+        // We can't take event.pageX to be our X coordinate, since the TreeElement
+        // could be indented, in which case we can't rely on its DOM element to be
+        // under the mouse.
         // We choose this X coordinate based on the knowledge that our list
         // items extend at least to the trailing edge of the outer <ol> container.
         // In the no-word-wrap mode the outer <ol> may be wider than the tree container
-        // (and partially hidden), in which case we are left to use only its trailing boundary.
+        // (and partially hidden), in which case we use the edge of its container.
+
+        let scrollContainer = this.element.parentElement;
+        if (scrollContainer.offsetWidth > this.element.offsetWidth)
+            scrollContainer = this.element;
+
         // This adjustment is useful in order to find the inner-most tree element that
         // lines up horizontally with the location of the event. If the mouse event
         // happened in the space preceding a nested tree element (in the leading indentated