Fix issue with ESC key not working immediately after the Settings dialog is opened the first time (due to it being registered after waiting for queryLocalFonts())

This commit is contained in:
Jonatan Heyman 2025-04-22 11:54:10 +02:00
parent 9a9811c5e8
commit 4cee52ad18

View File

@ -74,16 +74,15 @@
}, },
async mounted() { async mounted() {
window.addEventListener("keydown", this.onKeyDown);
this.appVersion = await window.heynote.getVersion()
if (window.queryLocalFonts !== undefined) { if (window.queryLocalFonts !== undefined) {
let localFonts = [... new Set((await window.queryLocalFonts()).map(f => f.family))].filter(f => f !== "Hack") let localFonts = [... new Set((await window.queryLocalFonts()).map(f => f.family))].filter(f => f !== "Hack")
localFonts = [...new Set(localFonts)].map(f => [f, f]) localFonts = [...new Set(localFonts)].map(f => [f, f])
this.systemFonts = [[defaultFontFamily, defaultFontFamily + " (default)"], ...localFonts] this.systemFonts = [[defaultFontFamily, defaultFontFamily + " (default)"], ...localFonts]
} }
window.addEventListener("keydown", this.onKeyDown);
this.$refs.keymapSelector.focus()
this.appVersion = await window.heynote.getVersion()
}, },
beforeUnmount() { beforeUnmount() {
window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keydown", this.onKeyDown);
@ -362,7 +361,7 @@
<div class="row"> <div class="row">
<div class="entry"> <div class="entry">
<h2>Keymap</h2> <h2>Keymap</h2>
<select ref="keymapSelector" v-model="keymap" @change="updateSettings" class="keymap"> <select v-model="keymap" @change="updateSettings" class="keymap">
<template v-for="km in keymaps" :key="km.value"> <template v-for="km in keymaps" :key="km.value">
<option :selected="km.value === keymap" :value="km.value">{{ km.name }}</option> <option :selected="km.value === keymap" :value="km.value">{{ km.name }}</option>
</template> </template>