diff --git a/bot/app/web/frontend/src/App.svelte b/bot/app/web/frontend/src/App.svelte index b4f3c3e..7e8f34a 100644 --- a/bot/app/web/frontend/src/App.svelte +++ b/bot/app/web/frontend/src/App.svelte @@ -248,7 +248,9 @@ let languageBusy = false; let languageMenuOpen = false; let languageClickGuard = false; + let languageClickGuardArmed = false; let languageClickGuardTimer = null; + let languageClickGuardArmTimer = null; let email = ""; let pendingEmail = ""; let emailCode = ""; @@ -447,6 +449,11 @@ window.clearTimeout(languageClickGuardTimer); languageClickGuardTimer = null; } + if (languageClickGuardArmTimer) { + window.clearTimeout(languageClickGuardArmTimer); + languageClickGuardArmTimer = null; + } + languageClickGuardArmed = false; } function setLanguageMenuOpen(open) { @@ -454,6 +461,10 @@ clearLanguageClickGuard(); if (languageMenuOpen) { languageClickGuard = true; + languageClickGuardArmTimer = window.setTimeout(() => { + languageClickGuardArmed = true; + languageClickGuardArmTimer = null; + }, 220); return; } languageClickGuardTimer = window.setTimeout(() => { @@ -2117,10 +2128,11 @@ {#if languageMenuOpen || languageClickGuard} {/if}
diff --git a/bot/app/web/frontend/src/styles.css b/bot/app/web/frontend/src/styles.css index 0f07e55..2b578a0 100644 --- a/bot/app/web/frontend/src/styles.css +++ b/bot/app/web/frontend/src/styles.css @@ -737,12 +737,18 @@ a { } .language-select-guard { + appearance: none; + -webkit-tap-highlight-color: transparent; position: fixed; inset: 0; z-index: 100; border: 0; background: transparent; + box-shadow: none; + outline: none; padding: 0; + pointer-events: auto; + touch-action: manipulation; } .copy-row,