⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 101314 in webkit


Ignore:
Timestamp:
Nov 28, 2011, 6:34:22 PM (15 years ago)
Author:
timothy@apple.com
Message:

Skip selecting TreeElements that are hidden when keyboard navigating.

We already skipped non-selectable tree elements in the common cases, this just makes selectable
take the hidden flag into account.

Reviewed by Brian Weinstein.

  • inspector/front-end/treeoutline.js:

(TreeOutline.prototype._treeKeyDown): Skip non-selectable elements when pressing Left or Right,
similar to what we already do when pressing Up and Down.
(TreeElement): Set _selectable to true.
(TreeElement.prototype.get selectable): Added. Return false when hidden.
(TreeElement.prototype.set selectable): Added. Set _selectable.
(TreeElement.prototype.traverseNextTreeElement): Renamed skipHidden to skipUnrevealed to prevent confusion with
the hidden property of TreeElement.
(TreeElement.prototype.traversePreviousTreeElement): Ditto.

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r101313 r101314  
     12011-11-28  Timothy Hatcher  <timothy@apple.com>
     2
     3        Skip selecting TreeElements that are hidden when keyboard navigating.
     4
     5        We already skipped non-selectable tree elements in the common cases, this just makes selectable
     6        take the hidden flag into account.
     7
     8        Reviewed by Brian Weinstein.
     9
     10        * inspector/front-end/treeoutline.js:
     11        (TreeOutline.prototype._treeKeyDown): Skip non-selectable elements when pressing Left or Right,
     12        similar to what we already do when pressing Up and Down.
     13        (TreeElement): Set _selectable to true.
     14        (TreeElement.prototype.get selectable): Added. Return false when hidden.
     15        (TreeElement.prototype.set selectable): Added. Set _selectable.
     16        (TreeElement.prototype.traverseNextTreeElement): Renamed skipHidden to skipUnrevealed to prevent confusion with
     17        the hidden property of TreeElement.
     18        (TreeElement.prototype.traversePreviousTreeElement): Ditto.
     19
    1202011-11-28  Timothy Hatcher  <timothy@apple.com>
    221
  • trunk/Source/WebCore/inspector/front-end/treeoutline.js

    r101313 r101314  
    379379            if (this.selectedTreeElement.parent.selectable) {
    380380                nextSelectedElement = this.selectedTreeElement.parent;
     381                while (nextSelectedElement && !nextSelectedElement.selectable)
     382                    nextSelectedElement = nextSelectedElement.parent;
    381383                handled = nextSelectedElement ? true : false;
    382384            } else if (this.selectedTreeElement.parent)
     
    391393            if (this.selectedTreeElement.expanded) {
    392394                nextSelectedElement = this.selectedTreeElement.children[0];
     395                while (nextSelectedElement && !nextSelectedElement.selectable)
     396                    nextSelectedElement = nextSelectedElement.nextSibling;
    393397                handled = nextSelectedElement ? true : false;
    394398            } else {
     
    469473
    470474    this._hidden = false;
     475    this._selectable = true;
    471476    this.expanded = false;
    472477    this.selected = false;
     
    481486
    482487TreeElement.prototype = {
    483     selectable: true,
    484488    arrowToggleWidth: 10,
     489
     490    get selectable() {
     491        if (this._hidden)
     492            return false;
     493        return this._selectable;
     494    },
     495
     496    set selectable(x) {
     497        this._selectable = x;
     498    },
    485499
    486500    get listItemElement() {
     
    889903
    890904/**
    891  * @param {boolean} skipHidden
     905 * @param {boolean} skipUnrevealed
    892906 * @param {(TreeOutline|TreeElement)=} stayWithin
    893907 * @param {boolean=} dontPopulate
     
    895909 * @return {TreeElement}
    896910 */
    897 TreeElement.prototype.traverseNextTreeElement = function(skipHidden, stayWithin, dontPopulate, info)
     911TreeElement.prototype.traverseNextTreeElement = function(skipUnrevealed, stayWithin, dontPopulate, info)
    898912{
    899913    if (!dontPopulate && this.hasChildren)
     
    903917        info.depthChange = 0;
    904918
    905     var element = skipHidden ? (this.revealed() ? this.children[0] : null) : this.children[0];
    906     if (element && (!skipHidden || (skipHidden && this.expanded))) {
     919    var element = skipUnrevealed ? (this.revealed() ? this.children[0] : null) : this.children[0];
     920    if (element && (!skipUnrevealed || (skipUnrevealed && this.expanded))) {
    907921        if (info)
    908922            info.depthChange = 1;
     
    913927        return null;
    914928
    915     element = skipHidden ? (this.revealed() ? this.nextSibling : null) : this.nextSibling;
     929    element = skipUnrevealed ? (this.revealed() ? this.nextSibling : null) : this.nextSibling;
    916930    if (element)
    917931        return element;
    918932
    919933    element = this;
    920     while (element && !element.root && !(skipHidden ? (element.revealed() ? element.nextSibling : null) : element.nextSibling) && element.parent !== stayWithin) {
     934    while (element && !element.root && !(skipUnrevealed ? (element.revealed() ? element.nextSibling : null) : element.nextSibling) && element.parent !== stayWithin) {
    921935        if (info)
    922936            info.depthChange -= 1;
     
    927941        return null;
    928942
    929     return (skipHidden ? (element.revealed() ? element.nextSibling : null) : element.nextSibling);
     943    return (skipUnrevealed ? (element.revealed() ? element.nextSibling : null) : element.nextSibling);
    930944}
    931945
    932946/**
    933  * @param {boolean} skipHidden
     947 * @param {boolean} skipUnrevealed
    934948 * @param {boolean=} dontPopulate
    935949 * @return {TreeElement}
    936950 */
    937 TreeElement.prototype.traversePreviousTreeElement = function(skipHidden, dontPopulate)
    938 {
    939     var element = skipHidden ? (this.revealed() ? this.previousSibling : null) : this.previousSibling;
     951TreeElement.prototype.traversePreviousTreeElement = function(skipUnrevealed, dontPopulate)
     952{
     953    var element = skipUnrevealed ? (this.revealed() ? this.previousSibling : null) : this.previousSibling;
    940954    if (!dontPopulate && element && element.hasChildren)
    941955        element.onpopulate();
    942956
    943     while (element && (skipHidden ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1])) {
     957    while (element && (skipUnrevealed ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1])) {
    944958        if (!dontPopulate && element.hasChildren)
    945959            element.onpopulate();
    946         element = (skipHidden ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1]);
     960        element = (skipUnrevealed ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1]);
    947961    }
    948962
Note: See TracChangeset for help on using the changeset viewer.