From ecbe595b343416ddecbc8363baab6ac3e299f70b Mon Sep 17 00:00:00 2001
From: Leah <kevinlukej@gmail.com>
Date: Mon, 26 Aug 2024 19:09:30 +0200
Subject: added event to detect when control and enter are pressed to confirm
 it. Also escape now escapes the window

---
 packages/frontend/src/components/MkFileCaptionEditWindow.vue | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

(limited to 'packages/frontend/src/components/MkFileCaptionEditWindow.vue')

diff --git a/packages/frontend/src/components/MkFileCaptionEditWindow.vue b/packages/frontend/src/components/MkFileCaptionEditWindow.vue
index 39551e6b3c..8ff6308fb1 100644
--- a/packages/frontend/src/components/MkFileCaptionEditWindow.vue
+++ b/packages/frontend/src/components/MkFileCaptionEditWindow.vue
@@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 	<template #header>{{ i18n.ts.describeFile }}</template>
 	<MkSpacer :marginMin="20" :marginMax="28">
 		<MkDriveFileThumbnail :file="file" fit="contain" style="height: 193px; margin-bottom: 16px;"/>
-		<MkTextarea v-model="caption" autofocus :placeholder="i18n.ts.inputNewDescription">
+		<MkTextarea v-model="caption" autofocus :placeholder="i18n.ts.inputNewDescription" @keydown="onKeydown($event)">
 			<template #label>{{ i18n.ts.caption }}</template>
 		</MkTextarea>
 	</MkSpacer>
@@ -46,6 +46,16 @@ const dialog = shallowRef<InstanceType<typeof MkModalWindow>>();
 
 const caption = ref(props.default);
 
+function onKeydown(ev: KeyboardEvent) {
+	if (ev.key === 'Enter' && (ev.ctrlKey || ev.metaKey)) ok();
+
+	if (ev.key === 'Escape') {
+		emit('closed');
+		dialog.value?.close();
+	}
+}
+
+
 async function ok() {
 	emit('done', caption.value);
 	dialog.value?.close();
-- 
cgit v1.2.3-freya

