From 5cd920fd16d3554bd3a1c5d64492061e7e719386 Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Wed, 22 Jan 2025 23:02:31 -0800 Subject: [PATCH] Pop open modals on escape keydown --- frontend/app/store/keymodel.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/app/store/keymodel.ts b/frontend/app/store/keymodel.ts index f2fa9911fc..4ced3db7cb 100644 --- a/frontend/app/store/keymodel.ts +++ b/frontend/app/store/keymodel.ts @@ -22,6 +22,7 @@ import { getLayoutModelForStaticTab } from "@/layout/lib/layoutModelHooks"; import * as keyutil from "@/util/keyutil"; import { fireAndForget } from "@/util/util"; import * as jotai from "jotai"; +import { modalsModel } from "./modalmodel"; const simpleControlShiftAtom = jotai.atom(false); const globalKeyMap = new Map boolean>(); @@ -384,7 +385,16 @@ function registerGlobalKeys() { return false; } globalKeyMap.set("Cmd:f", activateSearch); - globalKeyMap.set("Escape", deactivateSearch); + globalKeyMap.set("Escape", () => { + if (modalsModel.hasOpenModals()) { + modalsModel.popModal(); + return true; + } + if (deactivateSearch()) { + return true; + } + return false; + }); const allKeys = Array.from(globalKeyMap.keys()); // special case keys, handled by web view allKeys.push("Cmd:l", "Cmd:r", "Cmd:ArrowRight", "Cmd:ArrowLeft");