Fix keybinds invalidated by capslock state (#1776)

* [Refactor] Simplify keybinds code

* [Refactor] Type safety

* Fix capslock inverts undo/redo shortcuts

* [Refactor] Type safety

* Fix capslock state changes keybinds

* Deprecate keybind deserialize

* Remove keybind deserialize
This commit is contained in:
filtered
2024-12-04 11:12:09 +11:00
committed by GitHub
parent 08ae36818a
commit 0fe0aea242
3 changed files with 35 additions and 45 deletions

View File

@@ -37,26 +37,26 @@ app.registerExtension({
return
}
// Finished Handling all modifier keybinds, now handle the rest
// Only clear dialogs if not using modifiers
if (event.ctrlKey || event.altKey || event.metaKey) {
return
}
// Close out of modals using escape
// Escape key: close the first open modal found, and all dialogs
if (event.key === 'Escape') {
const modals = document.querySelectorAll<HTMLElement>('.comfy-modal')
const modal = Array.from(modals).find(
(modal) =>
window.getComputedStyle(modal).getPropertyValue('display') !==
'none'
)
if (modal) {
modal.style.display = 'none'
for (const modal of modals) {
const modalDisplay = window
.getComputedStyle(modal)
.getPropertyValue('display')
if (modalDisplay !== 'none') {
modal.style.display = 'none'
break
}
}
;[...document.querySelectorAll('dialog')].forEach((d) => {
d.close()
})
for (const d of document.querySelectorAll('dialog')) d.close()
}
}