commit 9c6be2c0ebffc35a82ca2e3638146f4ecdbe7919
parent e44e44b2226763b15c526ee8c675aa7f5b34a36e
Author: Simon Kornblith <simon@simonster.com>
Date: Sun, 6 Mar 2011 21:32:49 +0000
fix tag selector in Zotero tab
Diffstat:
2 files changed, 10 insertions(+), 7 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', '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)');
+ label.addEventListener('dragover', this.dragObserver.onDragOver, false);
+ label.addEventListener('dragexit', this.dragObserver.onDragExit, false);
+ label.addEventListener('drop', this.dragObserver.onDrop, true);
}
tagsToggleBox.appendChild(label);
}
@@ -698,8 +698,9 @@
<body>
<![CDATA[
this.onDragOver = function (event) {
+ Zotero.debug(event.dataTransfer.mozTypesAt(0));
if (!event.dataTransfer.getData('zotero/item')) {
- return true;
+ return;
}
/*
@@ -714,7 +715,8 @@
*/
event.target.setAttribute('draggedOver', true);
- return false;
+ event.preventDefault();
+ event.effectAllowed = event.dropEffect = "link";
}
this.onDragExit = function (event) {
diff --git a/chrome/content/zotero/tab.js b/chrome/content/zotero/tab.js
@@ -58,7 +58,7 @@ var ZoteroTab = new function()
}
// stop drop events from propagating
- this.containerBrowser.addEventListener("drop", _dropPropagationKiller, true);
+ this.containerBrowser.addEventListener("drop", _dropPropagationKiller, false);
// initialize ZoteroPane and swap out old window ZoteroPane object
if(this.containerWindow.ZoteroPane) {
@@ -110,7 +110,7 @@ var ZoteroTab = new function()
this.onUnload = function() {
// remove drop propagation killer
- this.containerBrowser.removeEventListener("drop", _dropPropagationKiller, true);
+ this.containerBrowser.removeEventListener("drop", _dropPropagationKiller, false);
// replace window ZoteroPane
if(this.containerWindow.ZoteroPane === this.containerWindow.ZoteroPane_Tab) {
@@ -124,6 +124,7 @@ var ZoteroTab = new function()
function _dropPropagationKiller(event) {
event.stopPropagation();
+ event.preventDefault();
}
}