diff --git a/src/client/components/post-form-attaches.vue b/src/client/components/post-form-attaches.vue
index 50ba9bfdcf..d9c0653617 100644
--- a/src/client/components/post-form-attaches.vue
+++ b/src/client/components/post-form-attaches.vue
@@ -1,6 +1,6 @@
 <template>
 <div class="skeikyzd" v-show="files.length != 0">
-	<x-draggable class="files" :list="files" animation="150">
+	<x-draggable class="files" :list="files" animation="150" delay="100" delayOnTouchOnly="true">
 		<div v-for="file in files" :key="file.id" @click="showFileMenu(file, $event)" @contextmenu.prevent="showFileMenu(file, $event)">
 			<x-file-thumbnail :data-id="file.id" class="thumbnail" :file="file" fit="cover"/>
 			<div class="sensitive" v-if="file.isSensitive">
@@ -41,6 +41,8 @@ export default Vue.extend({
 
 	data() {
 		return {
+			menu: null as Promise<null> | null,
+
 			faExclamationTriangle
 		};
 	},
@@ -80,7 +82,8 @@ export default Vue.extend({
 			});
 		},
 		showFileMenu(file, ev: MouseEvent) {
-			this.$root.menu({
+			if (this.menu) return;
+			this.menu = this.$root.menu({
 				items: [{
 					text: this.$t('renameFile'),
 					icon: faICursor,
@@ -95,7 +98,7 @@ export default Vue.extend({
 					action: () => { this.detachMedia(file.id) }
 				}],
 				source: ev.currentTarget || ev.target
-			});
+			}).then(() => this.menu = null);
 		}
 	}
 });