Title: [138480] trunk/Source/WebCore
Revision
138480
Author
[email protected]
Date
2012-12-26 11:48:02 -0800 (Wed, 26 Dec 2012)

Log Message

Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
https://bugs.webkit.org/show_bug.cgi?id=105716

Patch by Eugene Klyuchnikov <[email protected]> on 2012-12-26
Reviewed by Yury Semikhatsky.

This makes deletion of a set of cookies (using keyboard) painful.

* inspector/front-end/CookieItemsView.js: Call method instead of getter.
* inspector/front-end/CookiesTable.js: Remember and use next selected
cookie value.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (138479 => 138480)


--- trunk/Source/WebCore/ChangeLog	2012-12-26 18:01:40 UTC (rev 138479)
+++ trunk/Source/WebCore/ChangeLog	2012-12-26 19:48:02 UTC (rev 138480)
@@ -1,3 +1,16 @@
+2012-12-26  Eugene Klyuchnikov  <[email protected]>
+
+        Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
+        https://bugs.webkit.org/show_bug.cgi?id=105716
+
+        Reviewed by Yury Semikhatsky.
+
+        This makes deletion of a set of cookies (using keyboard) painful.
+
+        * inspector/front-end/CookieItemsView.js: Call method instead of getter.
+        * inspector/front-end/CookiesTable.js: Remember and use next selected
+        cookie value.
+
 2012-12-26  Yury Semikhatsky  <[email protected]>
 
         Web Inspector: extract JS heap profiler specifics into JSHeapSnapshot.js

Modified: trunk/Source/WebCore/inspector/front-end/CookieItemsView.js (138479 => 138480)


--- trunk/Source/WebCore/inspector/front-end/CookieItemsView.js	2012-12-26 18:01:40 UTC (rev 138479)
+++ trunk/Source/WebCore/inspector/front-end/CookieItemsView.js	2012-12-26 19:48:02 UTC (rev 138480)
@@ -149,8 +149,9 @@
 
     _deleteButtonClicked: function()
     {
-        if (this._cookiesTable.selectedCookie)
-            this._deleteCookie(this._cookiesTable.selectedCookie);
+        var selectedCookie = this._cookiesTable.selectedCookie();
+        if (selectedCookie)
+            this._deleteCookie(selectedCookie);
     },
 
     _refreshButtonClicked: function(event)

Modified: trunk/Source/WebCore/inspector/front-end/CookiesTable.js (138479 => 138480)


--- trunk/Source/WebCore/inspector/front-end/CookiesTable.js	2012-12-26 18:01:40 UTC (rev 138479)
+++ trunk/Source/WebCore/inspector/front-end/CookiesTable.js	2012-12-26 19:48:02 UTC (rev 138480)
@@ -75,6 +75,8 @@
     this._dataGrid.addEventListener("sorting changed", this._rebuildTable, this);
     this._dataGrid.refreshCallback = refreshCallback;
 
+    this._nextSelectedCookie = /** @type {?WebInspector.Cookie} */ (null);
+
     this._dataGrid.show(this.element);
     this._data = [];
 }
@@ -102,7 +104,10 @@
         this._rebuildTable();
     },
 
-    get selectedCookie()
+    /**
+     * @return {?WebInspector.Cookie}
+     */
+    selectedCookie: function()
     {
         var node = this._dataGrid.selectedNode;
         return node ? node.cookie : null;
@@ -110,6 +115,8 @@
 
     _rebuildTable: function()
     {
+        var selectedCookie = this._nextSelectedCookie || this.selectedCookie();
+        this._nextSelectedCookie = null;
         this._dataGrid.rootNode().removeChildren();
         for (var i = 0; i < this._data.length; ++i) {
             var item = this._data[i];
@@ -119,30 +126,31 @@
                 groupNode.selectable = true;
                 this._dataGrid.rootNode().appendChild(groupNode);
                 groupNode.element.addStyleClass("row-group");
-                this._populateNode(groupNode, item.cookies);
+                this._populateNode(groupNode, item.cookies, selectedCookie);
                 groupNode.expand();
             } else
-                this._populateNode(this._dataGrid.rootNode(), item.cookies);
+                this._populateNode(this._dataGrid.rootNode(), item.cookies, selectedCookie);
         }
     },
 
     /**
      * @param {!WebInspector.DataGridNode} parentNode
      * @param {?Array.<!WebInspector.Cookie>} cookies
+     * @param {?WebInspector.Cookie} selectedCookie
      */
-    _populateNode: function(parentNode, cookies)
+    _populateNode: function(parentNode, cookies, selectedCookie)
     {
-        var selectedCookie = this.selectedCookie;
         parentNode.removeChildren();
         if (!cookies)
             return;
 
         this._sortCookies(cookies);
         for (var i = 0; i < cookies.length; ++i) {
-            var cookieNode = this._createGridNode(cookies[i]);
+            var cookie = cookies[i];
+            var cookieNode = this._createGridNode(cookie);
             parentNode.appendChild(cookieNode);
-            if (selectedCookie === cookies[i])
-                cookieNode.selected = true;
+            if (selectedCookie && selectedCookie.name() === cookie.name() && selectedCookie.domain() === cookie.domain() && selectedCookie.path() === cookie.path())
+                cookieNode.select();
         }
     },
 
@@ -234,7 +242,11 @@
 
     _onDeleteFromGrid: function(deleteCallback, node)
     {
-        deleteCallback(node.cookie);
+        var cookie = node.cookie;
+        var neighbour = node.traverseNextNode() || node.traversePreviousNode();
+        if (neighbour)
+            this._nextSelectedCookie = neighbour.cookie;
+        deleteCallback(cookie);
     },
 
     __proto__: WebInspector.View.prototype
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to