Title: [96591] trunk/Source/WebCore
Revision
96591
Author
[email protected]
Date
2011-10-04 07:23:24 -0700 (Tue, 04 Oct 2011)

Log Message

Web Inspector: make DataGrid compile
https://bugs.webkit.org/show_bug.cgi?id=69334

Patch by Pavel Feldman <[email protected]> on 2011-10-04
Reviewed by Yury Semikhatsky.

* inspector/compile-front-end.sh:
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
(WebInspector.DataGrid.prototype._startEditing):
(WebInspector.DataGrid.prototype._startEditingConfig):
(WebInspector.DataGrid.prototype._editingCommitted.moveToNextIfNeeded):
(WebInspector.DataGrid.prototype._editingCommitted):
(WebInspector.DataGrid.prototype._editingCancelled):
(WebInspector.DataGrid.prototype.removeChildrenRecursive):
(WebInspector.DataGrid.prototype._keyDown):
(WebInspector.DataGrid.prototype._startResizerDragging):
(WebInspector.DataGrid.prototype._resizerDragging):
(WebInspector.DataGrid.prototype._endResizerDragging):
(WebInspector.DataGridNode.prototype._attach):
* inspector/front-end/UIUtils.js:
(WebInspector.isBeingEdited):
(WebInspector.markBeingEdited):
(WebInspector.isEditingAnyField):
(WebInspector.EditingConfig):
(WebInspector.startEditing.blurEventListener):
(WebInspector.startEditing.getContent):
(WebInspector.startEditing.cleanUpAfterEditing):
(WebInspector.startEditing.editingCancelled):
(WebInspector.startEditing.editingCommitted):
(WebInspector.startEditing.defaultFinishHandler):
(WebInspector.startEditing):
(WebInspector.startEditing.pasteEventListener):
(WebInspector.startEditing.keyDownEventListener):
* inspector/front-end/externs.js:
(Array.prototype.remove):
(window.getComputedStyle):
* inspector/front-end/inspector.js:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (96590 => 96591)


--- trunk/Source/WebCore/ChangeLog	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/ChangeLog	2011-10-04 14:23:24 UTC (rev 96591)
@@ -1,3 +1,44 @@
+2011-10-04  Pavel Feldman  <[email protected]>
+
+        Web Inspector: make DataGrid compile
+        https://bugs.webkit.org/show_bug.cgi?id=69334
+
+        Reviewed by Yury Semikhatsky.
+
+        * inspector/compile-front-end.sh:
+        * inspector/front-end/DataGrid.js:
+        (WebInspector.DataGrid):
+        (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
+        (WebInspector.DataGrid.prototype._startEditing):
+        (WebInspector.DataGrid.prototype._startEditingConfig):
+        (WebInspector.DataGrid.prototype._editingCommitted.moveToNextIfNeeded):
+        (WebInspector.DataGrid.prototype._editingCommitted):
+        (WebInspector.DataGrid.prototype._editingCancelled):
+        (WebInspector.DataGrid.prototype.removeChildrenRecursive):
+        (WebInspector.DataGrid.prototype._keyDown):
+        (WebInspector.DataGrid.prototype._startResizerDragging):
+        (WebInspector.DataGrid.prototype._resizerDragging):
+        (WebInspector.DataGrid.prototype._endResizerDragging):
+        (WebInspector.DataGridNode.prototype._attach):
+        * inspector/front-end/UIUtils.js:
+        (WebInspector.isBeingEdited):
+        (WebInspector.markBeingEdited):
+        (WebInspector.isEditingAnyField):
+        (WebInspector.EditingConfig):
+        (WebInspector.startEditing.blurEventListener):
+        (WebInspector.startEditing.getContent):
+        (WebInspector.startEditing.cleanUpAfterEditing):
+        (WebInspector.startEditing.editingCancelled):
+        (WebInspector.startEditing.editingCommitted):
+        (WebInspector.startEditing.defaultFinishHandler):
+        (WebInspector.startEditing):
+        (WebInspector.startEditing.pasteEventListener):
+        (WebInspector.startEditing.keyDownEventListener):
+        * inspector/front-end/externs.js:
+        (Array.prototype.remove):
+        (window.getComputedStyle):
+        * inspector/front-end/inspector.js:
+
 2011-10-04  Andrey Kosyakov  <[email protected]>
 
         Web Inspector: [Extensions API] extension panel's toolbar icon is incorrect when inspector window is docked

Modified: trunk/Source/WebCore/inspector/compile-front-end.sh (96590 => 96591)


--- trunk/Source/WebCore/inspector/compile-front-end.sh	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/inspector/compile-front-end.sh	2011-10-04 14:23:24 UTC (rev 96591)
@@ -63,9 +63,10 @@
         --js Source/WebCore/inspector/front-end/Resource.js \
         --js Source/WebCore/inspector/front-end/NetworkManager.js \
         --js Source/WebCore/inspector/front-end/UISourceCode.js \
-    --module jsmodule_ui:21:jsmodule_common \
+    --module jsmodule_ui:22:jsmodule_common \
         --js Source/WebCore/inspector/front-end/Checkbox.js \
         --js Source/WebCore/inspector/front-end/ContextMenu.js \
+        --js Source/WebCore/inspector/front-end/DataGrid.js \
         --js Source/WebCore/inspector/front-end/Drawer.js \
         --js Source/WebCore/inspector/front-end/EmptyView.js \
         --js Source/WebCore/inspector/front-end/HelpScreen.js \

Modified: trunk/Source/WebCore/inspector/front-end/DataGrid.js (96590 => 96591)


--- trunk/Source/WebCore/inspector/front-end/DataGrid.js	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/inspector/front-end/DataGrid.js	2011-10-04 14:23:24 UTC (rev 96591)
@@ -23,6 +23,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/**
+ * @constructor
+ * @extends {WebInspector.Object}
+ */
 WebInspector.DataGrid = function(columns, editCallback, deleteCallback)
 {
     this.element = document.createElement("div");
@@ -120,9 +124,9 @@
 
     for (var columnIdentifier in columns) {
         var column = columns[columnIdentifier];
-        var cell = document.createElement("td");
-        cell.className = columnIdentifier + "-column";
-        fillerRow.appendChild(cell);
+        var td = document.createElement("td");
+        td.className = columnIdentifier + "-column";
+        fillerRow.appendChild(td);
     }
 
     this._dataTableColumnGroup = columnGroup.cloneNode(true);
@@ -180,11 +184,7 @@
         this._editingNode.select();
 
         var element = this._editingNode._element.children[column];
-        WebInspector.startEditing(element, {
-            context: element.textContent,
-            commitHandler: this._editingCommitted.bind(this),
-            cancelHandler: this._editingCancelled.bind(this)
-        });
+        WebInspector.startEditing(element, this._startEditingConfig(element));
         window.getSelection().setBaseAndExtent(element, 0, element, 1);
     },
 
@@ -206,21 +206,28 @@
             return this._startEditingColumnOfDataGridNode(this._editingNode, 0);
 
         this._editing = true;
-        WebInspector.startEditing(element, {
-            context: element.textContent,
-            commitHandler: this._editingCommitted.bind(this),
-            cancelHandler: this._editingCancelled.bind(this)
-        });
+        WebInspector.startEditing(element, this._startEditingConfig(element));
+
         window.getSelection().setBaseAndExtent(element, 0, element, 1);
     },
 
+
+    _startEditingConfig: function(element)
+    {
+        var config = new WebInspector.EditingConfig();
+        config.setContext(element.textContent);
+        config.setCommitHandler(this._editingCommitted.bind(this));
+        config.setCancelHandler(this._editingCancelled.bind(this));
+        return config;
+    },
+
     _editingCommitted: function(element, newText, oldText, context, moveDirection)
     {
         // FIXME: We need more column identifiers here throughout this function.
         // Not needed yet since only editable DataGrid is DOM Storage, which is Key - Value.
 
         // FIXME: Better way to do this than regular expressions?
-        var columnIdentifier = parseInt(element.className.match(/\b(\d+)-column\b/)[1]);
+        var columnIdentifier = parseInt(element.className.match(/\b(\d+)-column\b/)[1], 10);
 
         var textBeforeEditing = this._editingNode.data[columnIdentifier];
         var currentEditingNode = this._editingNode;
@@ -240,7 +247,7 @@
                 if (nextDataGridNode)
                     return this._startEditingColumnOfDataGridNode(nextDataGridNode, 0);
                 if (currentEditingNode.isCreationNode && wasChange) {
-                    addCreationNode(false);
+                    this.addCreationNode(false);
                     return this._startEditingColumnOfDataGridNode(this.creationNode, 0);
                 }
                 return;
@@ -277,7 +284,7 @@
         moveToNextIfNeeded.call(this, true);
     },
 
-    _editingCancelled: function(element, context)
+    _editingCancelled: function(element)
     {
         delete this._editing;
         this._editingNode = null;
@@ -672,7 +679,7 @@
         }
 
         for (var i = 0; i < childrenToRemove.length; ++i) {
-            var child = childrenToRemove[i];
+            child = childrenToRemove[i];
             child.deselect();
             child._detach();
 
@@ -739,12 +746,12 @@
         if (event.keyIdentifier === "Up" && !event.altKey) {
             nextSelectedNode = this.selectedNode.traversePreviousNode(true);
             while (nextSelectedNode && !nextSelectedNode.selectable)
-                nextSelectedNode = nextSelectedNode.traversePreviousNode(!this.expandTreeNodesWhenArrowing);
+                nextSelectedNode = nextSelectedNode.traversePreviousNode(true);
             handled = nextSelectedNode ? true : false;
         } else if (event.keyIdentifier === "Down" && !event.altKey) {
             nextSelectedNode = this.selectedNode.traverseNextNode(true);
             while (nextSelectedNode && !nextSelectedNode.selectable)
-                nextSelectedNode = nextSelectedNode.traverseNextNode(!this.expandTreeNodesWhenArrowing);
+                nextSelectedNode = nextSelectedNode.traverseNextNode(true);
             handled = nextSelectedNode ? true : false;
         } else if (event.keyIdentifier === "Left") {
             if (this.selectedNode.expanded) {
@@ -950,16 +957,16 @@
 
     _startResizerDragging: function(event)
     {
-        this.currentResizer = event.target;
-        if (!this.currentResizer.rightNeighboringColumnID)
+        this._currentResizer = event.target;
+        if (!this._currentResizer.rightNeighboringColumnID)
             return;
-        WebInspector.elementDragStart(this.lastResizer, this._resizerDragging.bind(this),
+        WebInspector.elementDragStart(this._currentResizer, this._resizerDragging.bind(this),
             this._endResizerDragging.bind(this), event, "col-resize");
     },
 
     _resizerDragging: function(event)
     {
-        var resizer = this.currentResizer;
+        var resizer = this._currentResizer;
         if (!resizer)
             return;
 
@@ -1009,7 +1016,7 @@
     _endResizerDragging: function(event)
     {
         WebInspector.elementDragEnd(event);
-        this.currentResizer = null;
+        this._currentResizer = null;
         this.dispatchEventToListeners("width changed");
     },
 
@@ -1026,6 +1033,10 @@
 
 WebInspector.DataGrid.prototype.__proto__ = WebInspector.Object.prototype;
 
+/**
+ * @constructor
+ * @extends {WebInspector.Object}
+ */
 WebInspector.DataGridNode = function(data, hasChildren)
 {
     this._expanded = false;
@@ -1342,6 +1353,9 @@
         this.dispatchEventToListeners("revealed");
     },
 
+    /**
+     * @param {boolean=} supressSelectedEvent
+     */
     select: function(supressSelectedEvent)
     {
         if (!this.dataGrid || !this.selectable || this.selected)
@@ -1366,6 +1380,9 @@
         this.select();
     },
 
+    /**
+     * @param {boolean=} supressDeselectedEvent
+     */
     deselect: function(supressDeselectedEvent)
     {
         if (!this.dataGrid || this.dataGrid.selectedNode !== this || !this.selected)
@@ -1459,7 +1476,7 @@
         var nextNode = null;
         var previousNode = this.traversePreviousNode(true, true);
         if (previousNode && previousNode.element.parentNode && previousNode.element.nextSibling)
-            var nextNode = previousNode.element.nextSibling;
+            nextNode = previousNode.element.nextSibling;
         if (!nextNode)
             nextNode = this.dataGrid.dataTableBody.lastChild;
         this.dataGrid.dataTableBody.insertBefore(this.element, nextNode);
@@ -1510,6 +1527,10 @@
 
 WebInspector.DataGridNode.prototype.__proto__ = WebInspector.Object.prototype;
 
+/**
+ * @constructor
+ * @extends {WebInspector.DataGridNode}
+ */
 WebInspector.CreationDataGridNode = function(data, hasChildren)
 {
     WebInspector.DataGridNode.call(this, data, hasChildren);

Modified: trunk/Source/WebCore/inspector/front-end/UIUtils.js (96590 => 96591)


--- trunk/Source/WebCore/inspector/front-end/UIUtils.js	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/inspector/front-end/UIUtils.js	2011-10-04 14:23:24 UTC (rev 96591)
@@ -165,3 +165,234 @@
     };
 }
 
+WebInspector.isBeingEdited = function(element)
+{
+    return element.__editing;
+}
+
+WebInspector.markBeingEdited = function(element, value)
+{
+    if (value) {
+        if (element.__editing)
+            return false;
+        element.__editing = true;
+        WebInspector.__editingCount = (WebInspector.__editingCount || 0) + 1;
+    } else {
+        if (!element.__editing)
+            return false;
+        delete element.__editing;
+        --WebInspector.__editingCount;
+    }
+    return true;
+}
+
+WebInspector.isEditingAnyField = function()
+{
+    return !!WebInspector.__editingCount;
+}
+
+/**
+ * @constructor
+ */
+WebInspector.EditingConfig = function()
+{
+    /**
+     * Handles editing "commit" outcome
+     * @type {function(Element,string,string,*,string)|undefined}
+     */
+    this.commitHandler;
+
+    /**
+     * Handles editing "cancel" outcome
+     * @type {function(Element,*)|undefined}
+     */
+    this.cancelHandler;
+
+    /**
+     * Handles the "paste" event, return values are the same as those for customFinishHandler
+     * @type {function(Element)|undefined}
+     */
+    this.pasteHandler;
+
+    /** 
+     * An arbitrary context object to be passed to the commit and cancel handlers
+     * @type {Object|undefined}
+     */
+    this.context;
+
+    /** 
+     * Whether the edited element is multiline
+     * @type {boolean|undefined}
+     */
+    this.multiline;
+
+    /**
+     * Custom finish handler for the editing session (invoked on keydown)
+     * @type {function(Element,*)|undefined}
+     */
+    this.customFinishHandler;
+}
+
+WebInspector.EditingConfig.prototype = {
+    setCommitHandler: function(commitHandler)
+    {
+        this.commitHandler = commitHandler;
+    },
+
+    setCancelHandler: function(cancelHandler)
+    {
+        this.cancelHandler = cancelHandler;
+    },
+
+    setPasteHandler: function(pasteHandler)
+    {
+        this.pasteHandler = pasteHandler;
+    },
+
+    setContext: function(context)
+    {
+        this.context = context;
+    },
+
+    setMultiline: function(multiline)
+    {
+        this.multiline = multiline;
+    },
+
+    setCustomFinishHandler: function(customFinishHandler)
+    {
+        this.customFinishHandler = customFinishHandler;
+    }
+}
+
+/** 
+ * @param {Element} element
+ * @param {WebInspector.EditingConfig=} config
+ */
+WebInspector.startEditing = function(element, config)
+{
+    if (!WebInspector.markBeingEdited(element, true))
+        return;
+
+    config = config || new WebInspector.EditingConfig();
+    var committedCallback = config.commitHandler;
+    var cancelledCallback = config.cancelHandler;
+    var pasteCallback = config.pasteHandler;
+    var context = config.context;
+    var oldText = getContent(element);
+    var moveDirection = "";
+
+    element.addStyleClass("editing");
+
+    var oldTabIndex = element.tabIndex;
+    if (element.tabIndex < 0)
+        element.tabIndex = 0;
+
+    function blurEventListener() {
+        editingCommitted.call(element);
+    }
+
+    function getContent(element) {
+        if (element.tagName === "INPUT" && element.type === "text")
+            return element.value;
+        else
+            return element.textContent;
+    }
+
+    /** @this {Element} */
+    function cleanUpAfterEditing()
+    {
+        WebInspector.markBeingEdited(element, false);
+
+        this.removeStyleClass("editing");
+        this.tabIndex = oldTabIndex;
+        this.scrollTop = 0;
+        this.scrollLeft = 0;
+
+        element.removeEventListener("blur", blurEventListener, false);
+        element.removeEventListener("keydown", keyDownEventListener, true);
+        if (pasteCallback)
+            element.removeEventListener("paste", pasteEventListener, true);
+
+        if (element === WebInspector.currentFocusElement || element.isAncestor(WebInspector.currentFocusElement))
+            WebInspector.currentFocusElement = WebInspector.previousFocusElement;
+    }
+
+    /** @this {Element} */
+    function editingCancelled()
+    {
+        if (this.tagName === "INPUT" && this.type === "text")
+            this.value = oldText;
+        else
+            this.textContent = oldText;
+
+        cleanUpAfterEditing.call(this);
+
+        if (cancelledCallback)
+            cancelledCallback(this, context);
+    }
+
+    /** @this {Element} */
+    function editingCommitted()
+    {
+        cleanUpAfterEditing.call(this);
+
+        if (committedCallback)
+            committedCallback(this, getContent(this), oldText, context, moveDirection);
+    }
+
+    function defaultFinishHandler(event)
+    {
+        var isMetaOrCtrl = WebInspector.isMac() ?
+            event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey :
+            event.ctrlKey && !event.shiftKey && !event.metaKey && !event.altKey;
+        if (isEnterKey(event) && (event.isMetaOrCtrlForTest || !config.multiline || isMetaOrCtrl))
+            return "commit";
+        else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code || event.keyIdentifier === "U+001B")
+            return "cancel";
+        else if (event.keyIdentifier === "U+0009") // Tab key
+            return "move-" + (event.shiftKey ? "backward" : "forward");
+    }
+
+    function handleEditingResult(result, event)
+    {
+        if (result === "commit") {
+            editingCommitted.call(element);
+            event.preventDefault();
+            event.stopPropagation();
+        } else if (result === "cancel") {
+            editingCancelled.call(element);
+            event.preventDefault();
+            event.stopPropagation();
+        } else if (result && result.indexOf("move-") === 0) {
+            moveDirection = result.substring(5);
+            if (event.keyIdentifier !== "U+0009")
+                blurEventListener();
+        }
+    }
+
+    function pasteEventListener(event)
+    {
+        var result = pasteCallback(event);
+        handleEditingResult(result, event);
+    }
+
+    function keyDownEventListener(event)
+    {
+        var handler = config.customFinishHandler || defaultFinishHandler;
+        var result = handler(event);
+        handleEditingResult(result, event);
+    }
+
+    element.addEventListener("blur", blurEventListener, false);
+    element.addEventListener("keydown", keyDownEventListener, true);
+    if (pasteCallback)
+        element.addEventListener("paste", pasteEventListener, true);
+
+    WebInspector.currentFocusElement = element;
+    return {
+        cancel: editingCancelled.bind(element),
+        commit: editingCommitted.bind(element)
+    };
+}
+

Modified: trunk/Source/WebCore/inspector/front-end/externs.js (96590 => 96591)


--- trunk/Source/WebCore/inspector/front-end/externs.js	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/inspector/front-end/externs.js	2011-10-04 14:23:24 UTC (rev 96591)
@@ -77,7 +77,10 @@
 
 Element.prototype.scrollIntoViewIfNeeded = function() {}
 
-Array.prototype.remove = function(obj) {}
+/**
+ * @param {boolean=} onlyFirst
+ */
+Array.prototype.remove = function(obj, onlyFirst) {}
 
 WebInspector.extensionServer = {}
 WebInspector.extensionServer.notifyResourceContentCommitted = function(resource, content) {}
@@ -178,3 +181,13 @@
  * @type {string}
  */
 WebInspector.platformFlavor = "";
+
+/** @param {Element} element */
+window.getComputedStyle = function(element)
+{
+}
+
+/**
+ * @type {boolean}
+ */
+Event.prototype.isMetaOrCtrlForTest = false;

Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (96590 => 96591)


--- trunk/Source/WebCore/inspector/front-end/inspector.js	2011-10-04 14:12:19 UTC (rev 96590)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js	2011-10-04 14:23:24 UTC (rev 96591)
@@ -1356,160 +1356,6 @@
     return WebInspector.platform === "windows" && Preferences.useLowerCaseMenuTitlesOnWindows;
 }
 
-WebInspector.isBeingEdited = function(element)
-{
-    return element.__editing;
-}
-
-WebInspector.markBeingEdited = function(element, value)
-{
-    if (value) {
-        if (element.__editing)
-            return false;
-        element.__editing = true;
-        WebInspector.__editingCount = (WebInspector.__editingCount || 0) + 1;
-    } else {
-        if (!element.__editing)
-            return false;
-        delete element.__editing;
-        --WebInspector.__editingCount;
-    }
-    return true;
-}
-
-WebInspector.isEditingAnyField = function()
-{
-    return !!WebInspector.__editingCount;
-}
-
-// Available config fields (all optional):
-// context: Object - an arbitrary context object to be passed to the commit and cancel handlers
-// commitHandler: Function - handles editing "commit" outcome
-// cancelHandler: Function - handles editing "cancel" outcome
-// customFinishHandler: Function - custom finish handler for the editing session (invoked on keydown)
-// pasteHandler: Function - handles the "paste" event, return values are the same as those for customFinishHandler
-// multiline: Boolean - whether the edited element is multiline
-WebInspector.startEditing = function(element, config)
-{
-    if (!WebInspector.markBeingEdited(element, true))
-        return;
-
-    config = config || {};
-    var committedCallback = config.commitHandler;
-    var cancelledCallback = config.cancelHandler;
-    var pasteCallback = config.pasteHandler;
-    var context = config.context;
-    var oldText = getContent(element);
-    var moveDirection = "";
-
-    element.addStyleClass("editing");
-
-    var oldTabIndex = element.tabIndex;
-    if (element.tabIndex < 0)
-        element.tabIndex = 0;
-
-    function blurEventListener() {
-        editingCommitted.call(element);
-    }
-
-    function getContent(element) {
-        if (element.tagName === "INPUT" && element.type === "text")
-            return element.value;
-        else
-            return element.textContent;
-    }
-
-    function cleanUpAfterEditing() {
-        WebInspector.markBeingEdited(element, false);
-
-        this.removeStyleClass("editing");
-        this.tabIndex = oldTabIndex;
-        this.scrollTop = 0;
-        this.scrollLeft = 0;
-
-        element.removeEventListener("blur", blurEventListener, false);
-        element.removeEventListener("keydown", keyDownEventListener, true);
-        if (pasteCallback)
-            element.removeEventListener("paste", pasteEventListener, true);
-
-        if (element === WebInspector.currentFocusElement || element.isAncestor(WebInspector.currentFocusElement))
-            WebInspector.currentFocusElement = WebInspector.previousFocusElement;
-    }
-
-    function editingCancelled() {
-        if (this.tagName === "INPUT" && this.type === "text")
-            this.value = oldText;
-        else
-            this.textContent = oldText;
-
-        cleanUpAfterEditing.call(this);
-
-        if (cancelledCallback)
-            cancelledCallback(this, context);
-    }
-
-    function editingCommitted() {
-        cleanUpAfterEditing.call(this);
-
-        if (committedCallback)
-            committedCallback(this, getContent(this), oldText, context, moveDirection);
-    }
-
-    function defaultFinishHandler(event)
-    {
-        var isMetaOrCtrl = WebInspector.isMac() ?
-            event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey :
-            event.ctrlKey && !event.shiftKey && !event.metaKey && !event.altKey;
-        if (isEnterKey(event) && (event.isMetaOrCtrlForTest || !config.multiline || isMetaOrCtrl))
-            return "commit";
-        else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code || event.keyIdentifier === "U+001B")
-            return "cancel";
-        else if (event.keyIdentifier === "U+0009") // Tab key
-            return "move-" + (event.shiftKey ? "backward" : "forward");
-    }
-
-    function handleEditingResult(result, event)
-    {
-        if (result === "commit") {
-            editingCommitted.call(element);
-            event.preventDefault();
-            event.stopPropagation();
-        } else if (result === "cancel") {
-            editingCancelled.call(element);
-            event.preventDefault();
-            event.stopPropagation();
-        } else if (result && result.indexOf("move-") === 0) {
-            moveDirection = result.substring(5);
-            if (event.keyIdentifier !== "U+0009")
-                blurEventListener();
-        }
-    }
-
-    function pasteEventListener(event)
-    {
-        var result = pasteCallback(event);
-        handleEditingResult(result, event);
-    }
-
-    function keyDownEventListener(event)
-    {
-        var handler = config.customFinishHandler || defaultFinishHandler;
-        var result = handler(event);
-        handleEditingResult(result, event);
-    }
-
-    element.addEventListener("blur", blurEventListener, false);
-    element.addEventListener("keydown", keyDownEventListener, true);
-    if (pasteCallback)
-        element.addEventListener("paste", pasteEventListener, true);
-
-    WebInspector.currentFocusElement = element;
-    return {
-        cancel: editingCancelled.bind(element),
-        commit: editingCommitted.bind(element)
-    };
-}
-
 WebInspector._toolbarItemClicked = function(event)
 {
     var toolbarItem = event.currentTarget;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to