From 1c6783fa1e30c824496c22caec1e8af30f570706 Mon Sep 17 00:00:00 2001 From: leomoty Date: Fri, 28 Jun 2024 12:31:43 -0300 Subject: [PATCH] Properly open selected folder on middle click Fixes #545 --- src/files-card-body.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/files-card-body.tsx b/src/files-card-body.tsx index 18930075b..41ac20ccc 100644 --- a/src/files-card-body.tsx +++ b/src/files-card-body.tsx @@ -210,6 +210,20 @@ export const FilesCardBody = ({ } }; + const handleAuxClick = (ev: MouseEvent) => { + // capture middle click + if (ev.button === 1) { + ev.preventDefault(); + const name = getFilenameForEvent(ev); + const file = sortedFiles?.find(file => file.name === name); + + if (file && file.to === "dir") { + const query = [...path, file.name].join("/"); + open(`#/?path=${query}`); + } + } + }; + const handleContextMenu = (event: MouseEvent) => { const name = getFilenameForEvent(event); if (name !== null && selected.length > 1) { @@ -273,6 +287,7 @@ export const FilesCardBody = ({ folderViewElem.addEventListener("click", handleClick); folderViewElem.addEventListener("dblclick", handleDoubleClick); folderViewElem.addEventListener("contextmenu", handleContextMenu); + folderViewElem.addEventListener("auxclick", handleAuxClick); } if (!isMounted.current && !dialogs.isActive()) { @@ -288,6 +303,7 @@ export const FilesCardBody = ({ folderViewElem.removeEventListener("click", handleClick); folderViewElem.removeEventListener("dblclick", handleDoubleClick); folderViewElem.removeEventListener("contextmenu", handleContextMenu); + folderViewElem.removeEventListener("auxclick", handleAuxClick); } }; }, [