diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue
index 64e4d51e2..1dbb1cbc1 100644
--- a/src/client/components/drive.vue
+++ b/src/client/components/drive.vue
@@ -17,7 +17,7 @@
 		@dragenter="onDragenter"
 		@dragleave="onDragleave"
 		@drop.prevent.stop="onDrop"
-		@contextmenu="onContextmenu"
+		@contextmenu.stop="onContextmenu"
 	>
 		<div class="contents" ref="contents">
 			<div class="folders" ref="foldersContainer" v-show="folders.length > 0">
diff --git a/src/client/ui/deck/main-column.vue b/src/client/ui/deck/main-column.vue
index c09880d68..f0d5567b6 100644
--- a/src/client/ui/deck/main-column.vue
+++ b/src/client/ui/deck/main-column.vue
@@ -58,6 +58,7 @@ export default defineComponent({
 
 		onContextmenu(e) {
 			if (['INPUT', 'TEXTAREA'].includes(e.target.tagName) || e.target.attributes['contenteditable']) return;
+			if (window.getSelection().toString() !== '') return;
 			const path = this.$route.path;
 			os.contextMenu([{
 				type: 'label',
diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue
index 0da410820..7626ddaa5 100644
--- a/src/client/ui/default.vue
+++ b/src/client/ui/default.vue
@@ -188,6 +188,7 @@ export default defineComponent({
 
 		onContextmenu(e) {
 			if (['INPUT', 'TEXTAREA'].includes(e.target.tagName) || e.target.attributes['contenteditable']) return;
+			if (window.getSelection().toString() !== '') return;
 			const path = this.$route.path;
 			os.contextMenu([{
 				type: 'label',