Close open modals on escape keydown (#1809)

This commit is contained in:
Evan Simkowitz 2025-01-23 12:23:53 -08:00 committed by GitHub
parent 19634ed5df
commit 2304b8be22
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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<string, (waveEvent: WaveKeyboardEvent) => 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");