diff --git a/main/accessibility.js b/accessibility/keyboardui.js similarity index 96% rename from main/accessibility.js rename to accessibility/keyboardui.js index d4f18fe3..aecda02f 100644 --- a/main/accessibility.js +++ b/accessibility/keyboardui.js @@ -1,6 +1,6 @@ -import { InputManager } from "./inputmanager.js"; -import { ContextManager } from "./context.js"; -import { translate } from "./translation.js"; +import { InputManager } from "../main/inputmanager.js"; +import { ContextManager } from "../main/context.js"; +import { translate } from "../main/translation.js"; import { SHORTCUTS_HELP_URL } from "../config.js"; // Area menu accessed with Ctrl + B to quickly skip to @@ -27,7 +27,6 @@ const AreaManager = { // Create the element dynamically so you don't have to edit index.html const div = document.createElement("div"); div.id = "area-menu-overlay"; - div.className = "hidden"; div.classList.add("hidden"); div.setAttribute("role", "dialog"); div.setAttribute("aria-modal", "true"); @@ -43,7 +42,19 @@ const AreaManager = { if (show) { GizmoMenuManager.toggle(false); // Close gizmo menu if open this.renderHighlights(); + this._previousInertStates = new Map(); + document + .querySelectorAll("body > *:not(#area-menu-overlay)") + .forEach((el) => { + this._previousInertStates.set(el, el.inert); + el.inert = true; + }); + this.previousFocus = document.activeElement; setTimeout(() => this.overlay.focus(), 0); + } else { + this._previousInertStates?.forEach((wasInert, el) => (el.inert = wasInert)); + this._previousInertStates = null; + this.previousFocus?.focus(); } this.overlay.classList.toggle("hidden", !show); } @@ -475,7 +486,7 @@ const ShortcutsPanel = { tbody.innerHTML = Object.entries(groups) .map( ([cat, items]) => ` - ${cat} + ${cat} ${items.map(({ label, keys }) => `${label}${formatKeys(keys)}`).join("")} `, ) diff --git a/main/main.js b/main/main.js index 5b89614d..db71a7eb 100644 --- a/main/main.js +++ b/main/main.js @@ -48,7 +48,7 @@ import { initializeSavedLanguage, translate, } from "./translation.js"; -import { ShortcutsPanel } from "./accessibility.js"; +import { ShortcutsPanel } from "../accessibility/keyboardui.js"; import { InputManager } from "./inputmanager.js"; import "./context.js"; diff --git a/ui/addmenu.js b/ui/addmenu.js index 6164de63..69046315 100644 --- a/ui/addmenu.js +++ b/ui/addmenu.js @@ -20,7 +20,7 @@ import { setCrosshairCursor, setDefaultCursor, } from "./canvas-utils.js"; -import { GizmoMenuManager } from "../main/accessibility.js"; +import { GizmoMenuManager } from "../accessibility/keyboardui.js"; const colorFields = { HAIR_COLOR: "#000000", // Hair: black diff --git a/ui/gizmos.js b/ui/gizmos.js index f279f2fe..18cb88b1 100644 --- a/ui/gizmos.js +++ b/ui/gizmos.js @@ -32,7 +32,7 @@ import { } from "./canvas-utils.js"; import { createAxisKeyboardHandler } from "./axis-keyboard.js"; import { InputManager } from "../main/inputmanager.js"; -import { GizmoMenuManager } from "../main/accessibility.js"; +import { GizmoMenuManager } from "../accessibility/keyboardui.js"; export let gizmoManager; // Enable debug messages