From ba48733f17006b5e07625a22811594e62033fcc8 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Fri, 3 Dec 2021 00:58:40 +0100 Subject: 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 --- p/scripts/main.js | 63 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 27 deletions(-) (limited to 'p/scripts') 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(); } }); } -- cgit v1.2.3