Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/elements/ElementsTreeOutline.js

Issue 1403853002: Devtools: DOM inspection follows inspect cursor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
4 * Copyright (C) 2009 Joseph Pecoraro 4 * Copyright (C) 2009 Joseph Pecoraro
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 if (!node) 607 if (!node)
608 return; 608 return;
609 var treeElement = this.createTreeElementFor(node); 609 var treeElement = this.createTreeElementFor(node);
610 if (!treeElement) 610 if (!treeElement)
611 return; 611 return;
612 612
613 treeElement.revealAndSelect(omitFocus); 613 treeElement.revealAndSelect(omitFocus);
614 }, 614 },
615 615
616 /** 616 /**
617 * @param {?WebInspector.DOMNode} node
618 */
619 highlightNode: function(node)
620 {
621 var treeElement = null;
622 if (node) {
623 treeElement = this.createTreeElementFor(node);
624 treeElement.reveal();
625 }
626 this._setHoverEffect(treeElement);
627 },
628
629 /**
617 * @return {?TreeElement} 630 * @return {?TreeElement}
618 */ 631 */
619 _treeElementFromEvent: function(event) 632 _treeElementFromEvent: function(event)
620 { 633 {
621 var scrollContainer = this.element.parentElement; 634 var scrollContainer = this.element.parentElement;
622 635
623 // We choose this X coordinate based on the knowledge that our list 636 // We choose this X coordinate based on the knowledge that our list
624 // items extend at least to the right edge of the outer <ol> container. 637 // items extend at least to the right edge of the outer <ol> container.
625 // In the no-word-wrap mode the outer <ol> may be wider than the tree co ntainer 638 // In the no-word-wrap mode the outer <ol> may be wider than the tree co ntainer
626 // (and partially hidden), in which case we are left to use only its rig ht boundary. 639 // (and partially hidden), in which case we are left to use only its rig ht boundary.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 _onmousedown: function(event) 729 _onmousedown: function(event)
717 { 730 {
718 var element = this._treeElementFromEvent(event); 731 var element = this._treeElementFromEvent(event);
719 732
720 if (!element || element.isEventWithinDisclosureTriangle(event)) 733 if (!element || element.isEventWithinDisclosureTriangle(event))
721 return; 734 return;
722 735
723 element.select(); 736 element.select();
724 }, 737 },
725 738
726 _onmousemove: function(event) 739 /**
740 * @param {?TreeElement} treeElement
741 */
742 _setHoverEffect: function (treeElement)
727 { 743 {
728 var element = this._treeElementFromEvent(event); 744 if (this._previousHoveredElement === treeElement)
729 if (element && this._previousHoveredElement === element)
730 return; 745 return;
731 746
732 if (this._previousHoveredElement) { 747 if (this._previousHoveredElement) {
733 this._previousHoveredElement.hovered = false; 748 this._previousHoveredElement.hovered = false;
734 delete this._previousHoveredElement; 749 delete this._previousHoveredElement;
735 } 750 }
736 751
737 if (element) { 752 if (treeElement) {
738 element.hovered = true; 753 treeElement.hovered = true;
739 this._previousHoveredElement = element; 754 this._previousHoveredElement = treeElement;
740 } 755 }
756 },
757
758 _onmousemove: function(event)
759 {
760 var element = this._treeElementFromEvent(event);
761 if (element && this._previousHoveredElement === element)
762 return;
763
764 this._setHoverEffect(element);
741 765
742 if (element instanceof WebInspector.ElementsTreeElement) { 766 if (element instanceof WebInspector.ElementsTreeElement) {
743 this._domModel.highlightDOMNodeWithConfig(element.node().id, { mode: "all", showInfo: !WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) }); 767 this._domModel.highlightDOMNodeWithConfig(element.node().id, { mode: "all", showInfo: !WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) });
744 return; 768 return;
745 } 769 }
746 770
747 if (element instanceof WebInspector.ElementsTreeOutline.ShortcutTreeElem ent) 771 if (element instanceof WebInspector.ElementsTreeOutline.ShortcutTreeElem ent)
748 this._domModel.highlightDOMNodeWithConfig(undefined, { mode: "all", showInfo: !WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) }, element.ba ckendNodeId()); 772 this._domModel.highlightDOMNodeWithConfig(undefined, { mode: "all", showInfo: !WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) }, element.ba ckendNodeId());
749 }, 773 },
750 774
751 _onmouseleave: function(event) 775 _onmouseleave: function(event)
752 { 776 {
753 if (this._previousHoveredElement) { 777 this._setHoverEffect(null);
754 this._previousHoveredElement.hovered = false;
755 delete this._previousHoveredElement;
756 }
757
758 WebInspector.DOMModel.hideDOMNodeHighlight(); 778 WebInspector.DOMModel.hideDOMNodeHighlight();
759 }, 779 },
760 780
761 _ondragstart: function(event) 781 _ondragstart: function(event)
762 { 782 {
763 if (!event.target.isComponentSelectionCollapsed()) 783 if (!event.target.isComponentSelectionCollapsed())
764 return false; 784 return false;
765 if (event.target.nodeName === "A") 785 if (event.target.nodeName === "A")
766 return false; 786 return false;
767 787
(...skipping 1066 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 if (node) { 1854 if (node) {
1835 this.treeOutline._selectedDOMNode = node; 1855 this.treeOutline._selectedDOMNode = node;
1836 this.treeOutline._selectedNodeChanged(); 1856 this.treeOutline._selectedNodeChanged();
1837 } 1857 }
1838 } 1858 }
1839 return true; 1859 return true;
1840 }, 1860 },
1841 1861
1842 __proto__: TreeElement.prototype 1862 __proto__: TreeElement.prototype
1843 } 1863 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698