Merge pull request #748 from ANH25/drag-and-drop

fix drag & drop issue when dropping things over existing content
This commit is contained in:
Damien Elmes 2020-08-26 08:38:48 +10:00 committed by GitHub
commit 05efefeff9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 10 deletions

View File

@ -922,9 +922,7 @@ to a cloze type first, via 'Notes>Change Note Type'"""
self.doPaste(html, internal) self.doPaste(html, internal)
p = self.web.mapFromGlobal(QCursor.pos()) p = self.web.mapFromGlobal(QCursor.pos())
self.web.evalWithCallback( self.web.evalWithCallback(f"focusIfField({p.x()}, {p.y()});", pasteIfField)
f"focusIfField(document.elementFromPoint({p.x()}, {p.y()}));", pasteIfField
)
def onPaste(self): def onPaste(self):
self.web.onPaste() self.web.onPaste()

View File

@ -216,7 +216,10 @@ function focusPrevious() {
} }
} }
function focusIfField(elem) { function focusIfField(x, y) {
const elements = document.elementsFromPoint(x, y);
for (let i = 0; i < elements.length; i++) {
let elem = elements[i] as HTMLElement;
if (elem.classList.contains("field")) { if (elem.classList.contains("field")) {
elem.focus(); elem.focus();
// the focus event may not fire if the window is not active, so make sure // the focus event may not fire if the window is not active, so make sure
@ -224,6 +227,7 @@ function focusIfField(elem) {
currentField = elem; currentField = elem;
return true; return true;
} }
}
return false; return false;
} }