www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 1b7e2b412b2564019f7a65235d630ca1e4e5c0f4
parent 31f9378da55d7b8a70987f47ee7a3e600b346935
Author: Dan Stillman <dstillman@zotero.org>
Date:   Sun, 26 Dec 2010 02:49:49 +0000

Fix tag selector drag and drop in Firefox 4


Diffstat:
Mchrome/content/zotero/bindings/tagselector.xml | 42+++++++++++++++++++-----------------------
1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/chrome/content/zotero/bindings/tagselector.xml b/chrome/content/zotero/bindings/tagselector.xml @@ -246,9 +246,9 @@ label.setAttribute('tagType', this._tags[tagID].type); if (this.editable) { label.setAttribute('context', 'tag-menu'); - label.setAttribute('ondragover', 'nsDragAndDrop.dragOver(event, document.getBindingParent(this).dragObserver)'); - label.setAttribute('ondragexit', 'nsDragAndDrop.dragExit(event, document.getBindingParent(this).dragObserver)'); - label.setAttribute('ondragdrop', 'nsDragAndDrop.drop(event, document.getBindingParent(this).dragObserver)'); + label.setAttribute('ondragover', 'return document.getBindingParent(this).dragObserver.onDragOver(event)'); + label.setAttribute('ondragexit', 'return document.getBindingParent(this).dragObserver.onDragExit(event)'); + label.setAttribute('ondrop', 'return document.getBindingParent(this).dragObserver.onDrop(event)'); } tagsToggleBox.appendChild(label); } @@ -697,41 +697,44 @@ <method name="_dragObserverConstructor"> <body> <![CDATA[ - this.onDragOver = onDragOver; - this.onDragExit = onDragExit; - this.onDrop = onDrop; - this.getSupportedFlavours = getSupportedFlavours; - - - function onDragOver(event, flavour, session) { + this.onDragOver = function (event) { + if (!event.dataTransfer.getData('zotero/item')) { + return true; + } + /* // TODO: get drop data var ids = dropData.data.split(','); var items = Zotero.Items.get(ids); for (var i=0; i<items.length; i++) { if (!Zotero.Items.isEditable(items[i])) { - return false; + return true; } } */ event.target.setAttribute('draggedOver', true); - return true; + return false; } - function onDragExit(event, session) { + this.onDragExit = function (event) { event.target.setAttribute('draggedOver', false); - return true; } - function onDrop(event, dropData, session) { + this.onDrop = function (event) { var node = event.target; node.setAttribute('draggedOver', false); + var dt = event.dataTransfer; + var ids = dt.getData('zotero/item'); + if (!ids) { + return; + } + Zotero.DB.beginTransaction(); - var ids = dropData.data.split(','); + ids = ids.split(','); var items = Zotero.Items.get(ids); // Find a manual tag if there is one @@ -761,13 +764,6 @@ Zotero.DB.commitTransaction(); } - - - function getSupportedFlavours() { - var flavours = new FlavourSet(); - flavours.appendFlavour("zotero/item"); - return flavours; - } ]]> </body> </method>