diff --git a/bot/app/web/frontend/src/App.svelte b/bot/app/web/frontend/src/App.svelte index 83ce7f1..381298c 100644 --- a/bot/app/web/frontend/src/App.svelte +++ b/bot/app/web/frontend/src/App.svelte @@ -259,7 +259,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 = ""; @@ -587,6 +589,11 @@ window.clearTimeout(languageClickGuardTimer); languageClickGuardTimer = null; } + if (languageClickGuardArmTimer) { + window.clearTimeout(languageClickGuardArmTimer); + languageClickGuardArmTimer = null; + } + languageClickGuardArmed = false; } function setLanguageMenuOpen(open) { @@ -594,6 +601,10 @@ clearLanguageClickGuard(); if (languageMenuOpen) { languageClickGuard = true; + languageClickGuardArmTimer = window.setTimeout(() => { + languageClickGuardArmed = true; + languageClickGuardArmTimer = null; + }, 220); return; } languageClickGuardTimer = window.setTimeout(() => { @@ -2621,10 +2632,11 @@ {#if languageMenuOpen || languageClickGuard} {/if}
diff --git a/bot/app/web/frontend/src/styles.css b/bot/app/web/frontend/src/styles.css index 726f35b..31610f8 100644 --- a/bot/app/web/frontend/src/styles.css +++ b/bot/app/web/frontend/src/styles.css @@ -947,12 +947,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,