diff --git a/chrome/content/zotero/integration/quickFormat.js b/chrome/content/zotero/integration/quickFormat.js index f22156ed94..a458e61b63 100644 --- a/chrome/content/zotero/integration/quickFormat.js +++ b/chrome/content/zotero/integration/quickFormat.js @@ -1396,15 +1396,23 @@ var Zotero_QuickFormat = new function () { var _onBubbleDrop = Zotero.Promise.coroutine(function* (event) { event.preventDefault(); event.stopPropagation(); + if (!dragging) return; // Find old position in list var oldPosition = _getBubbleIndex(dragging); // Move bubble var range = document.createRange(); - range.setStartAfter(event.rangeParent); + // Prevent dragging out of qfe + if (event.target === qfe) { + range.setStartAfter(qfe.childNodes[qfe.childNodes.length-1]); + } + else { + range.setStartAfter(event.target); + } dragging.parentNode.removeChild(dragging); var bubble = _insertBubble(JSON.parse(dragging.dataset.citationItem), range); + dragging = null; // If moved out of order, turn off "Keep Sources Sorted" if(io.sortable && keepSorted && keepSorted.hasAttribute("checked") && oldPosition !== -1 &&