This commit is contained in:
Andrew Pimenov 2026-08-26 16:59:14 +03:00 • committed by GitHub
commit d55dacb4e3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -140,7 +140,11 @@ function reorderDoc(srcId: string, targetId: string): void {
renderDocList(); renderDocList();
} }
function setupDocInteraction(el: HTMLElement, doc: DocMeta, list: HTMLElement): void { function setupDocInteraction(
el: HTMLElement,
doc: DocMeta,
list: HTMLElement,
): void {
// Reordering uses plain mouse tracking, not the native HTML5 drag API — // Reordering uses plain mouse tracking, not the native HTML5 drag API —
// Tauri's window-level file-drop hook (dragDropEnabled, needed for // Tauri's window-level file-drop hook (dragDropEnabled, needed for
// dropping .numi files from Explorer) intercepts WebView2's own drag // dropping .numi files from Explorer) intercepts WebView2's own drag
@ -163,7 +167,8 @@ function setupDocInteraction(el: HTMLElement, doc: DocMeta, list: HTMLElement):
}); });
} }
if (!dragging) { if (!dragging) {
if (Math.abs(ev.clientY - startY) < 4) return; const dy = ev.clientY - startY;
if (dy > -4 && dy < 4) return;
dragging = true; dragging = true;
suppressClick = true; suppressClick = true;
el.classList.add("dragging"); el.classList.add("dragging");
@ -171,10 +176,9 @@ function setupDocInteraction(el: HTMLElement, doc: DocMeta, list: HTMLElement):
} }
let over: HTMLElement | undefined; let over: HTMLElement | undefined;
for (const item of cachedItems) { for (const item of cachedItems) {
if (!over && item.el !== el) { if (ev.clientY >= item.top && ev.clientY <= item.bottom) {
if (ev.clientY >= item.top && ev.clientY <= item.bottom) { if (item.el !== el) over = item.el;
over = item.el; break;
}
} }
} }
let newOver: HTMLElement | undefined; let newOver: HTMLElement | undefined;
@ -341,7 +345,9 @@ async function closeActiveDoc(): Promise<void> {
void backupDeletedSheet(settings.dataDir, doc.title, content); void backupDeletedSheet(settings.dataDir, doc.title, content);
delete data.contents[doc.id]; delete data.contents[doc.id];
removeDocById(doc.id); removeDocById(doc.id);
const nextId = data.docs[idx] ? data.docs[idx].id : (data.docs[idx - 1]?.id ?? data.docs[0].id); const nextId = data.docs[idx]
? data.docs[idx].id
: (data.docs[idx - 1]?.id ?? data.docs[0].id);
switchDoc(nextId); switchDoc(nextId);
saveAppData(data); saveAppData(data);
} }