Skip to content

Commit 15e7f92

Browse files
committed
Zephyr.Keys.bind() and toggleFullScreen() fixes!
1 parent f281ae0 commit 15e7f92

File tree

1 file changed

+29
-30
lines changed

1 file changed

+29
-30
lines changed

src/zephyr.js

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* ZephyrJS is licensed under the MIT License.
55
*
66
* Consider contributing to the project!
7-
* https://github.com/ZephyrStudio/ZephyrJS
7+
* https://github.com/ZephyrJS-Project/ZephyrJS
88
*/
99
const ZEPHYR = { VERSION: '23.9' };
1010
(function (exports) {
@@ -73,25 +73,10 @@ const ZEPHYR = { VERSION: '23.9' };
7373
while (b = arr[i++])
7474
for (const k in b) tgt[k] = b[k];
7575
};
76-
u.toggleFullScreen = function (view) {
77-
if (!view.fullscreenElement &&
78-
!view.mozFullScreenElement && !view.webkitFullscreenElement) {
79-
if (view.requestFullscreen) {
80-
view.requestFullscreen();
81-
} else if (view.mozRequestFullScreen) {
82-
view.mozRequestFullScreen();
83-
} else if (view.webkitRequestFullscreen) {
84-
view.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
85-
}
86-
} else {
87-
if (view.cancelFullScreen) {
88-
view.cancelFullScreen();
89-
} else if (view.mozCancelFullScreen) {
90-
view.mozCancelFullScreen();
91-
} else if (view.webkitCancelFullScreen) {
92-
view.webkitCancelFullScreen();
93-
}
94-
}
76+
u.toggleFullScreen = function (view = document.body) {
77+
view.requestFullScreen = view.requestFullScreen || view.webkitRequestFullScreen || view.mozRequestFullScreen || function () { return false };
78+
document.cancelFullScreen = document.cancelFullScreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || function () { return false };
79+
(document.webkitIsFullScreen || document.mozFullScreen || false) ? document.cancelFullScreen() : view.requestFullScreen();
9580
}
9681
return u;
9782
})(index || {});
@@ -232,14 +217,22 @@ const ZEPHYR = { VERSION: '23.9' };
232217
})(File || {});
233218

234219
var Keys = (function (k) {
235-
k._map = new Map(),
236-
k.down = function (key) {
237-
if (k._map.size > 0 && k._map.has(key)) {
238-
k._map.set(key, false);
239-
return true;
240-
}
241-
return false;
242-
};
220+
k._map = new Map();
221+
k._bind = new Map();
222+
k.bind = function (key, fn, event = 'keydown') {
223+
if (fn) k._bind.set(key + event, fn);
224+
else {
225+
k._bind.delete(key + 'keydown');
226+
k._bind.delete(key + 'keyup');
227+
}
228+
}
229+
k.down = function (key) {
230+
if (k._map.size > 0 && k._map.has(key)) {
231+
k._map.set(key, false);
232+
return true;
233+
}
234+
return false;
235+
};
243236
k.fired = function (key) {
244237
if (k._map.size > 0 && k._map.get(key)) {
245238
k._map.set(key, false);
@@ -340,8 +333,14 @@ const ZEPHYR = { VERSION: '23.9' };
340333
window.addEventListener('contextmenu', e => { e.preventDefault() });
341334

342335
// KEYBOARD
343-
window.addEventListener('keydown', e => { if (!Keys._map.has(e.code)) Keys._map.set(e.code, true) });
344-
window.addEventListener('keyup', e => { Keys._map.delete(e.code) });
336+
window.addEventListener('keydown', e => {
337+
if (!Keys._map.has(e.code)) Keys._map.set(e.code, true)
338+
if (Keys._bind.has(e.code + 'keydown')) Keys._bind.get(e.code + 'keydown')();
339+
});
340+
window.addEventListener('keyup', e => {
341+
if (Keys._bind.has(e.code + 'keyup')) Keys._bind.get(e.code + 'keyup')();
342+
Keys._map.delete(e.code);
343+
});
345344

346345
// MOUSE
347346
window.addEventListener('resize', () => { Mouse._bounds = Mouse._container.getBoundingClientRect() });

0 commit comments

Comments
 (0)