소스 검색

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>
Frans de Jonge 4 년 전
부모
커밋
ba48733f17
1개의 변경된 파일36개의 추가작업 그리고 27개의 파일을 삭제
  1. 36 27
      p/scripts/main.js

+ 36 - 27
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(); }
 	});
 }