From 4f809504b998341bc722e6f647de7f77f9806e7f Mon Sep 17 00:00:00 2001 From: Enrico Zini Date: Mon, 20 Apr 2020 22:01:14 +0200 Subject: [PATCH] Don't trap keys when modifiers are set. Fixes: #1 --- process/static/js/mailbox-viewer.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/process/static/js/mailbox-viewer.js b/process/static/js/mailbox-viewer.js index 620e26e..e724b01 100644 --- a/process/static/js/mailbox-viewer.js +++ b/process/static/js/mailbox-viewer.js @@ -3,6 +3,11 @@ const epoch = "1970-01-01T00:00:00+00:00"; +function has_modifiers(evt) +{ + return evt.altKey || evt.ctrlKey || evt.isComposing || evt.metaKey || evt.shiftKey; +} + class MessageTable { constructor(options) @@ -14,6 +19,10 @@ class MessageTable this.table = $(this.el_table).find("table"); this.el_tbody.addEventListener("keydown", evt => { + // Skip all events with modifiers, since we don't use any, and this + // way we prevent eating browser shortcuts + if (has_modifiers(evt)) + return; const code = evt.code; let ignored = false; if (code == "Escape") @@ -39,6 +48,9 @@ class MessageTable }); this.el_tbody.addEventListener("wheel", evt => { + // Skip all events with modifiers, since we don't use any so far + if (has_modifiers(evt)) + return; if (evt.deltaY < 0) this.prev_message(); else @@ -46,6 +58,9 @@ class MessageTable }); this.el_tbody.addEventListener("click", evt => { + // Skip all events with modifiers, since we don't use any so far + if (has_modifiers(evt)) + return; // Find the row clicked let tr = evt.target; while (tr && tr.tagName != "TR") -- GitLab