From bf68a8a3e859f60d4c6dc47fd38c6ba4922f0661 Mon Sep 17 00:00:00 2001 From: Mia <62818119+xNasuni@users.noreply.github.com> Date: Sun, 8 Jun 2025 10:55:12 -0400 Subject: [PATCH] MessageClickActions: make delete key detection consistent on lost focus (#3470) Co-authored-by: Vending Machine --- src/plugins/messageClickActions/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/messageClickActions/index.ts b/src/plugins/messageClickActions/index.ts index 19ccaa95..a07c924a 100644 --- a/src/plugins/messageClickActions/index.ts +++ b/src/plugins/messageClickActions/index.ts @@ -20,7 +20,7 @@ import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { findByPropsLazy } from "@webpack"; -import { FluxDispatcher, PermissionsBits, PermissionStore, UserStore } from "@webpack/common"; +import { FluxDispatcher, PermissionsBits, PermissionStore, UserStore, WindowStore } from "@webpack/common"; const MessageActions = findByPropsLazy("deleteMessage", "startEditMessage"); const EditStore = findByPropsLazy("isEditing", "isEditingAny"); @@ -28,6 +28,7 @@ const EditStore = findByPropsLazy("isEditing", "isEditingAny"); let isDeletePressed = false; const keydown = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = true); const keyup = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = false); +const focusChanged = () => !WindowStore.isFocused() && (isDeletePressed = false); const settings = definePluginSettings({ enableDeleteOnClick: { @@ -62,11 +63,13 @@ export default definePlugin({ start() { document.addEventListener("keydown", keydown); document.addEventListener("keyup", keyup); + WindowStore.addChangeListener(focusChanged); }, stop() { document.removeEventListener("keydown", keydown); document.removeEventListener("keyup", keyup); + WindowStore.removeChangeListener(focusChanged); }, onMessageClick(msg: any, channel, event) {