Changeset 90561 in webkit


Ignore:
Timestamp:
Jul 7, 2011 9:20:12 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

2011-07-07 Pavel Feldman <pfeldman@chromium.org>

Web Inspector: prevent default action during drag'n'drop in the Elements panel.
https://bugs.webkit.org/show_bug.cgi?id=64081

Reviewed by Yury Semikhatsky.

  • inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeOutline): (WebInspector.ElementsTreeOutline.prototype._ondragstart): (WebInspector.ElementsTreeOutline.prototype._ondragover): (WebInspector.ElementsTreeOutline.prototype._ondragend):
  • inspector/front-end/treeoutline.js: (TreeOutline.prototype.treeElementFromPoint):
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r90560 r90561  
     12011-07-07  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: prevent default action during drag'n'drop in the Elements panel.
     4        https://bugs.webkit.org/show_bug.cgi?id=64081
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/front-end/ElementsTreeOutline.js:
     9        (WebInspector.ElementsTreeOutline):
     10        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
     11        (WebInspector.ElementsTreeOutline.prototype._ondragover):
     12        (WebInspector.ElementsTreeOutline.prototype._ondragend):
     13        * inspector/front-end/treeoutline.js:
     14        (TreeOutline.prototype.treeElementFromPoint):
     15
    1162011-07-07  Nikolas Zimmermann  <nzimmermann@rim.com>
    217
  • trunk/Source/WebCore/inspector/front-end/ElementsTreeOutline.js

    r90460 r90561  
    3737    this.element.addEventListener("dragover", this._ondragover.bind(this), false);
    3838    this.element.addEventListener("dragleave", this._ondragleave.bind(this), false);
     39    this.element.addEventListener("drop", this._ondrop.bind(this), false);
    3940    this.element.addEventListener("dragend", this._ondragend.bind(this), false);
    4041
     
    276277
    277278        event.dataTransfer.setData("text/plain", treeElement.listItemElement.textContent);
    278         event.dataTransfer.effectAllowed = "copy";
     279        event.dataTransfer.effectAllowed = "copyMove";
    279280        this._nodeBeingDragged = treeElement.representedObject;
    280281
     
    286287    _ondragover: function(event)
    287288    {
    288         this._clearDragOverTreeElementMarker();
    289 
    290289        if (!this._nodeBeingDragged)
    291             return;
    292        
    293         var treeElement = this._treeElementFromEvent(event);
    294         if (!this._isValidDragSourceOrTarget(treeElement))
    295             return;
    296 
    297         var node = treeElement.representedObject;
    298         while (node) {
    299             if (node === this._nodeBeingDragged)
    300                 return;
    301             node = node.parentNode;
    302         }
    303 
    304         treeElement.updateSelection();
    305         treeElement.listItemElement.addStyleClass("elements-drag-over");
    306         this._dragOverTreeElement = treeElement;
    307     },
    308 
    309     _ondragleave: function(event)
    310     {
    311         this._clearDragOverTreeElementMarker();
    312 
    313         if (!this._nodeBeingDragged)
    314             return;
     290            return false;
    315291       
    316292        var treeElement = this._treeElementFromEvent(event);
     
    321297        while (node) {
    322298            if (node === this._nodeBeingDragged)
    323                 return;
     299                return false;
    324300            node = node.parentNode;
    325301        }
     
    328304        treeElement.listItemElement.addStyleClass("elements-drag-over");
    329305        this._dragOverTreeElement = treeElement;
     306        event.preventDefault();
     307        event.dataTransfer.dropEffect = 'move';
     308        return false;
     309    },
     310
     311    _ondragleave: function(event)
     312    {
     313        this._clearDragOverTreeElementMarker();
     314        event.preventDefault();
     315        return false;
    330316    },
    331317
     
    348334    },
    349335
    350     _ondragend: function(event)
    351     {
    352         if (this._nodeBeingDragged && this._dragOverTreeElement) {
     336    _ondrop: function(event)
     337    {
     338        event.preventDefault();
     339        var treeElement = this._treeElementFromEvent(event);
     340        if (this._nodeBeingDragged && treeElement) {
    353341            var parentNode;
    354342            var anchorNode;
    355343
    356             if (this._dragOverTreeElement._elementCloseTag) {
     344            if (treeElement._elementCloseTag) {
    357345                // Drop onto closing tag -> insert as last child.
    358                 parentNode = this._dragOverTreeElement.representedObject;
     346                parentNode = treeElement.representedObject;
    359347            } else {
    360                 var dragTargetNode = this._dragOverTreeElement.representedObject;
     348                var dragTargetNode = treeElement.representedObject;
    361349                parentNode = dragTargetNode.parentNode;
    362350                anchorNode = dragTargetNode;
     
    375363            this._nodeBeingDragged.moveTo(parentNode, anchorNode, callback.bind(this));
    376364        }
    377        
     365
     366        delete this._nodeBeingDragged;
     367    },
     368
     369    _ondragend: function(event)
     370    {
     371        event.preventDefault();
    378372        this._clearDragOverTreeElementMarker();
    379373        delete this._nodeBeingDragged;
  • trunk/Source/WebCore/inspector/front-end/treeoutline.js

    r73913 r90561  
    333333{
    334334    var node = this._childrenListNode.ownerDocument.elementFromPoint(x, y);
     335    if (!node)
     336        return null;
     337
    335338    var listNode = node.enclosingNodeOrSelfWithNodeNameInArray(["ol", "li"]);
    336339    if (listNode)
Note: See TracChangeset for help on using the changeset viewer.