Skip to content

Commit a7a85b5

Browse files
committed
Fixed keyboard shortcuts not triggering early-listeners
1 parent ad63af5 commit a7a85b5

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/js/listeners.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ class Listeners {
4747
// Seek by the number keys
4848
const seekByKey = () => {
4949
// Divide the max duration into 10th's and times by the number value
50-
player.currentTime = (player.duration / 10) * (code - 48);
50+
const target = (player.duration / 10) * (code - 48);
51+
this.proxy(event, () => {
52+
player.currentTime = target
53+
}, 'seek')
5154
};
5255

5356
// Handle the key on keydown
@@ -100,52 +103,56 @@ class Listeners {
100103
case 75:
101104
// Space and K key
102105
if (!repeat) {
103-
silencePromise(player.togglePlay());
106+
this.proxy(event, () => silencePromise(player.togglePlay()), 'play')
104107
}
105108
break;
106109

107110
case 38:
108111
// Arrow up
109-
player.increaseVolume(0.1);
112+
this.proxy(event, () => player.increaseVolume(0.1), 'volume')
110113
break;
111114

112115
case 40:
113116
// Arrow down
114-
player.decreaseVolume(0.1);
117+
this.proxy(event, () => player.decreaseVolume(0.1), 'volume')
115118
break;
116119

117120
case 77:
118121
// M key
119122
if (!repeat) {
120-
player.muted = !player.muted;
123+
this.proxy(event, () => {
124+
player.muted = !player.muted
125+
}, 'mute')
121126
}
122127
break;
123128

124129
case 39:
125130
// Arrow forward
126-
player.forward();
131+
this.proxy(event, player.forward, 'fastForward')
127132
break;
128133

129134
case 37:
130135
// Arrow back
131-
player.rewind();
136+
this.proxy(event, player.rewind, 'rewind')
132137
break;
133138

134139
case 70:
135140
// F key
136-
player.fullscreen.toggle();
141+
this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen')
137142
break;
138143

139144
case 67:
140145
// C key
141146
if (!repeat) {
142-
player.toggleCaptions();
147+
this.proxy(event, () => player.toggleCaptions(), 'captions')
143148
}
144149
break;
145150

146151
case 76:
147152
// L key
148-
player.loop = !player.loop;
153+
this.proxy(event, () => {
154+
player.loop = !player.loop
155+
}, 'loop')
149156
break;
150157

151158
/* case 73:
@@ -167,7 +174,7 @@ class Listeners {
167174
// Escape is handle natively when in full screen
168175
// So we only need to worry about non native
169176
if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) {
170-
player.fullscreen.toggle();
177+
this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen')
171178
}
172179

173180
// Store last code for next cycle

0 commit comments

Comments
 (0)