diff --git a/navigator/src/components/DirectoryEntry.vue b/navigator/src/components/DirectoryEntry.vue index f367387..b2fcad1 100644 --- a/navigator/src/components/DirectoryEntry.vue +++ b/navigator/src/components/DirectoryEntry.vue @@ -80,7 +80,7 @@ If not, see . class="absolute left-0 top-0 bottom-0 w-full max-w-[50vw]" @mouseup.stop @click.prevent="$emit('directoryViewAction', 'toggleSelected', entry, $event)" - @contextmenu.prevent.stop="$emit('browserAction', 'contextMenu', entry, $event)" + @contextmenu.prevent.stop="contextMenuCallback" @dblclick="doubleClickCallback" @mouseenter="hover = true" @mouseleave="hover = false" @@ -129,7 +129,7 @@ If not, see . @dblclick="doubleClickCallback" @click.prevent="$emit('directoryViewAction', 'toggleSelected', entry, $event)" @mouseup.stop - @contextmenu.prevent.stop="$emit('browserAction', 'contextMenu', entry, $event)" + @contextmenu.prevent.stop="contextMenuCallback" @mouseenter="hover = true" @mouseleave="hover = false" ref="selectIntersectElement" @@ -218,6 +218,13 @@ export default { } } + const contextMenuCallback = (event) => { + if (!props.entry.selected) { + emit('directoryViewAction', 'toggleSelected', props.entry, event); + } + nextTick(() => emit('browserAction', 'contextMenu', event)); + } + const refresh = () => { return directoryEntryListRef.value?.refresh?.(); } @@ -251,6 +258,7 @@ export default { showEntries, directoryEntryListRef, doubleClickCallback, + contextMenuCallback, refresh, toggleShowEntries, gatherEntries,