prevent autofocus of dialog elements on mobile

This commit is contained in:
schlagmichdoch 2023-09-18 22:32:21 +02:00
parent fc190dd121
commit 684e43a352
4 changed files with 8 additions and 8 deletions

View file

@ -337,7 +337,7 @@
</div> </div>
<div class="center file-preview"></div> <div class="center file-preview"></div>
<div class="row-reverse center button-row"> <div class="row-reverse center button-row">
<button id="share-btn" class="button" data-i18n-key="dialogs.share" data-i18n-attrs="text" autofocus hidden>Share</button> <button id="share-btn" class="button" data-i18n-key="dialogs.share" data-i18n-attrs="text" hidden>Share</button>
<button id="download-btn" class="button" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus>Download</button> <button id="download-btn" class="button" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus>Download</button>
<button class="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close>Close</button> <button class="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close>Close</button>
</div> </div>

View file

@ -1,8 +1,8 @@
const $ = query => document.getElementById(query); const $ = query => document.getElementById(query);
const $$ = query => document.body.querySelector(query); const $$ = query => document.body.querySelector(query);
window.isProductionEnvironment = !window.location.host.startsWith('localhost');
window.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; window.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
window.android = /android/i.test(navigator.userAgent); window.android = /android/i.test(navigator.userAgent);
window.isMobile = window.iOS || window.android;
window.pasteMode = {}; window.pasteMode = {};
window.pasteMode.activated = false; window.pasteMode.activated = false;
@ -600,7 +600,7 @@ class Dialog {
show() { show() {
this.$el.setAttribute('show', 1); this.$el.setAttribute('show', 1);
if (this.$autoFocus) this.$autoFocus.focus(); if (!window.isMobile && this.$autoFocus) this.$autoFocus.focus();
} }
isShown() { isShown() {
@ -609,7 +609,7 @@ class Dialog {
hide() { hide() {
this.$el.removeAttribute('show'); this.$el.removeAttribute('show');
if (this.$autoFocus) { if (!window.isMobile && this.$autoFocus) {
document.activeElement.blur(); document.activeElement.blur();
window.blur(); window.blur();
} }

View file

@ -342,7 +342,7 @@
</div> </div>
<div class="center file-preview"></div> <div class="center file-preview"></div>
<div class="row-reverse center button-row"> <div class="row-reverse center button-row">
<button id="share-btn" class="button" data-i18n-key="dialogs.share" data-i18n-attrs="text" autofocus hidden>Share</button> <button id="share-btn" class="button" data-i18n-key="dialogs.share" data-i18n-attrs="text" hidden>Share</button>
<button id="download-btn" class="button" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus>Download</button> <button id="download-btn" class="button" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus>Download</button>
<button class="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close>Close</button> <button class="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close>Close</button>
</div> </div>

View file

@ -1,8 +1,8 @@
const $ = query => document.getElementById(query); const $ = query => document.getElementById(query);
const $$ = query => document.body.querySelector(query); const $$ = query => document.body.querySelector(query);
window.isProductionEnvironment = !window.location.host.startsWith('localhost');
window.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; window.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
window.android = /android/i.test(navigator.userAgent); window.android = /android/i.test(navigator.userAgent);
window.isMobile = window.iOS || window.android;
window.pasteMode = {}; window.pasteMode = {};
window.pasteMode.activated = false; window.pasteMode.activated = false;
@ -602,7 +602,7 @@ class Dialog {
show() { show() {
this.$el.setAttribute('show', 1); this.$el.setAttribute('show', 1);
if (this.$autoFocus) this.$autoFocus.focus(); if (!window.isMobile && this.$autoFocus) this.$autoFocus.focus();
} }
isShown() { isShown() {
@ -611,7 +611,7 @@ class Dialog {
hide() { hide() {
this.$el.removeAttribute('show'); this.$el.removeAttribute('show');
if (this.$autoFocus) { if (!window.isMobile && this.$autoFocus) {
document.activeElement.blur(); document.activeElement.blur();
window.blur(); window.blur();
} }