aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/listeners.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/listeners.js')
-rw-r--r--src/js/listeners.js19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/js/listeners.js b/src/js/listeners.js
index 8176e9a3..c2b772b2 100644
--- a/src/js/listeners.js
+++ b/src/js/listeners.js
@@ -553,6 +553,9 @@ class Listeners {
// Settings menu - click toggle
this.bind(elements.buttons.settings, 'click', event => {
+ // Prevent the document click listener closing the menu
+ event.stopPropagation();
+
controls.toggleMenu.call(player, event);
});
@@ -563,8 +566,16 @@ class Listeners {
elements.buttons.settings,
'keyup',
event => {
+ const code = event.which;
+
// We only care about space and return
- if (event.which !== 32 && event.which !== 13) {
+ if (![13, 32].includes(code)) {
+ return;
+ }
+
+ // Because return triggers a click anyway, all we need to do is set focus
+ if (code === 13) {
+ controls.focusFirstMenuItem.call(player, null, true);
return;
}
@@ -572,15 +583,13 @@ class Listeners {
event.preventDefault();
// Prevent playing video (Firefox)
- if (event.which === 32) {
- event.stopPropagation();
- }
+ event.stopPropagation();
// Toggle menu
controls.toggleMenu.call(player, event);
},
null,
- false,
+ false, // Can't be passive as we're preventing default
);
// Escape closes menu