diff options
| author | 2021-12-03 00:58:40 +0100 | |
|---|---|---|
| committer | 2021-12-03 00:58:40 +0100 | |
| commit | ba48733f17006b5e07625a22811594e62033fcc8 (patch) | |
| tree | 94c88c394dabd6bd9965eaf21135fd124596ce70 /p/scripts | |
| parent | a54aa19dc7f8cd344cdfb199ee94c01e0b90becc (diff) | |
Add preventDefault to keydown event handler (#4013)
* Add preventDefault to keydown event handler
Fixes #3946.
* review
* silence technically correct but missing the picture check
Co-authored-by: Frans de Jonge <frans@clevercast.com>
Diffstat (limited to 'p/scripts')
| -rw-r--r-- | p/scripts/main.js | 63 |
1 files changed, 36 insertions, 27 deletions
diff --git a/p/scripts/main.js b/p/scripts/main.js index f7a4d17f3..16ae7d0f0 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -841,7 +841,7 @@ function init_shortcuts() { document.addEventListener('keydown', ev => { if (ev.target.closest('input, textarea') || ev.ctrlKey || ev.metaKey || (ev.altKey && ev.shiftKey)) { - return true; + return; } const s = context.shortcuts; @@ -860,7 +860,8 @@ function init_shortcuts() { } else { auto_share(n); } - return false; + ev.preventDefault(); + return; } } if (k === s.actualize) { @@ -868,7 +869,8 @@ function init_shortcuts() { if (btn) { btn.click(); } - return false; + ev.preventDefault(); + return; } if (k === s.next_entry) { if (ev.altKey) { @@ -878,7 +880,8 @@ function init_shortcuts() { } else { next_entry(false); } - return false; + ev.preventDefault(); + return; } if (k === s.next_unread_entry) { if (ev.altKey) { @@ -888,7 +891,8 @@ function init_shortcuts() { } else { next_unread_entry(false); } - return false; + ev.preventDefault(); + return; } if (k === s.prev_entry) { if (ev.altKey) { @@ -898,7 +902,8 @@ function init_shortcuts() { } else { prev_entry(false); } - return false; + ev.preventDefault(); + return; } if (k === s.mark_read) { if (ev.altKey) { @@ -908,7 +913,8 @@ function init_shortcuts() { } else { // Toggle the read state mark_read(document.querySelector('.flux.current'), false, false); } - return false; + ev.preventDefault(); + return; } if (k === s.first_entry) { if (ev.altKey) { @@ -922,7 +928,8 @@ function init_shortcuts() { toggleContent(first, old_active, false); } } - return false; + ev.preventDefault(); + return; } if (k === s.last_entry) { if (ev.altKey) { @@ -936,15 +943,17 @@ function init_shortcuts() { toggleContent(last, old_active, false); } } - return false; + ev.preventDefault(); + return; } if (ev.altKey || ev.shiftKey) { - return true; + return; } if (k === s.mark_favorite) { // Toggle the favorite state mark_favorite(document.querySelector('.flux.current')); - return false; + ev.preventDefault(); + return; } if (k === s.go_website) { if (context.auto_mark_site) { @@ -955,23 +964,23 @@ function init_shortcuts() { newWindow.opener = null; newWindow.location = document.querySelector('.flux.current a.go_website').href; } - return false; + ev.preventDefault(); + return; } - if (k === s.skip_next_entry) { next_entry(true); return false; } - if (k === s.skip_prev_entry) { prev_entry(true); return false; } - if (k === s.collapse_entry) { collapse_entry(); return false; } - if (k === s.auto_share) { auto_share(); return false; } - if (k === s.user_filter) { user_filter(); return false; } - if (k === s.load_more) { load_more_posts(); return false; } - if (k === s.close_dropdown) { location.hash = null; return false; } - if (k === s.help) { window.open(context.urls.help); return false; } - if (k === s.focus_search) { document.getElementById('search').focus(); return false; } - if (k === s.normal_view) { delayedClick(document.querySelector('#nav_menu_views .view-normal')); return false; } - if (k === s.reading_view) { delayedClick(document.querySelector('#nav_menu_views .view-reader')); return false; } - if (k === s.global_view) { delayedClick(document.querySelector('#nav_menu_views .view-global')); return false; } - if (k === s.rss_view) { delayedClick(document.querySelector('#nav_menu_views .view-rss')); return false; } - if (k === s.toggle_media) { toggle_media(); return false; } - return true; + if (k === s.skip_next_entry) { next_entry(true); ev.preventDefault(); return; } + if (k === s.skip_prev_entry) { prev_entry(true); ev.preventDefault(); return; } + if (k === s.collapse_entry) { collapse_entry(); ev.preventDefault(); return; } + if (k === s.auto_share) { auto_share(); ev.preventDefault(); return; } + if (k === s.user_filter) { user_filter(); ev.preventDefault(); return; } + if (k === s.load_more) { load_more_posts(); ev.preventDefault(); return; } + if (k === s.close_dropdown) { location.hash = null; ev.preventDefault(); return; } + if (k === s.help) { window.open(context.urls.help); ev.preventDefault(); return; } + if (k === s.focus_search) { document.getElementById('search').focus(); ev.preventDefault(); return; } + if (k === s.normal_view) { delayedClick(document.querySelector('#nav_menu_views .view-normal')); ev.preventDefault(); return; } + if (k === s.reading_view) { delayedClick(document.querySelector('#nav_menu_views .view-reader')); ev.preventDefault(); return; } + if (k === s.global_view) { delayedClick(document.querySelector('#nav_menu_views .view-global')); ev.preventDefault(); return; } + if (k === s.rss_view) { delayedClick(document.querySelector('#nav_menu_views .view-rss')); ev.preventDefault(); return; } + if (k === s.toggle_media) { toggle_media(); ev.preventDefault(); } }); } |
