Bug 17772

Summary: Inspector should support point-and-click to select a node to inspect
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: Web Inspector (Deprecated)Assignee: Matt Lilek <dev+webkit>
Status: RESOLVED FIXED    
Severity: Enhancement CC: dev+webkit, jl, rik, timothy
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Initial cut
timothy: review+
round 2
timothy: review+
button
none
Better button
none
Even better button
none
with suggestions
dev+webkit: review-
round 3
none
round 3 timothy: review+

Description Adam Roben (:aroben) 2008-03-11 09:36:57 PDT
The Inspector should support point-and-click to select a node to inspect. This has a few advantages over the current "Inspect Element" context menu item:

1. It's clearer which node you're choosing, because the hovered node will be outlined before you choose it.
2. It's potentially more discoverable than "Inspect Element".
3. It doesn't require you to click on the node you're going to inspect, which could potentially change its state.

Bug 16532 covers a complimentary (and inverse) behavior.
Comment 1 Adam Roben (:aroben) 2008-03-11 09:38:12 PDT
<rdar://problem/5792395>
Comment 2 Matt Lilek 2008-05-30 08:59:26 PDT
*** Bug 19322 has been marked as a duplicate of this bug. ***
Comment 3 Matt Lilek 2008-09-15 19:23:32 PDT
Created attachment 23456 [details]
Initial cut

As I wrote in the ChangeLog:

Despite putting this up for review, I'm not intending to land it as is. Among the known issues:
        - Need better art for the magnifying glass button
        - Is EventHandler really the best place for intercepting the node click - feels dirty. Would
          making -[WebView setHoverFeedbackSuspended:] cross-platform be a better route?
        - I think I can get away with not having to track searchingForNode in ElementsPanel
        - Some method names could be tweaked.
Comment 4 Matt Lilek 2008-09-15 19:24:37 PDT
Hrm....git diff didn't include the button png....
Comment 5 Matt Lilek 2008-09-18 20:41:00 PDT
Created attachment 23549 [details]
round 2

This isn't much different from the previous version, but is more landable - ie: uses localizedStrings and also fixes a couple of bugs like stopping the search when you switch panels, but still does have a few bugs.
Comment 6 Matt Lilek 2008-09-18 20:44:01 PDT
Created attachment 23550 [details]
button
Comment 7 Timothy Hatcher 2008-09-18 20:52:44 PDT
Comment on attachment 23549 [details]
round 2

+    InspectorController* inspector = m_page->inspectorController();
+    if (!inspector)
+        return;
+    inspector->mouseDidMoveOverElement(result, modifierFlags);


Better written as:

if (InspectorController* inspector = m_page->inspectorController())
       inspector->mouseDidMoveOverElement(result, modifierFlags);

+    InspectorController* controller = reinterpret_cast<InspectorController*>(JSObjectGetPrivate(thisObject));
+    if (controller)
+        controller->toggleSearchForNodeInPage();

Better written as:

if (InspectorController* controller = reinterpret_cast<InspectorController*>(JSObjectGetPrivate(thisObject)))
      controller->toggleSearchForNodeInPage();
Comment 8 Timothy Hatcher 2008-09-18 21:34:03 PDT
Created attachment 23551 [details]
Better button
Comment 9 Timothy Hatcher 2008-09-18 21:37:09 PDT
Created attachment 23552 [details]
Even better button
Comment 10 Matt Lilek 2008-09-18 21:42:21 PDT
Created attachment 23553 [details]
with suggestions
Comment 11 Matt Lilek 2008-09-18 21:48:11 PDT
Comment on attachment 23553 [details]
with suggestions

broke something, hang on
Comment 12 Matt Lilek 2008-09-19 16:30:13 PDT
Created attachment 23583 [details]
round 3

Fixes the bugs with toggle behavior and includes Tim's version of the button
Comment 13 Matt Lilek 2008-09-19 16:33:20 PDT
Created attachment 23584 [details]
round 3

I know how to read and click on the right file, honest
Comment 14 Matt Lilek 2008-09-19 17:12:08 PDT
Committed revision 36685.