Skip to content

Commit

Permalink
replace event.keyCode with event.key
Browse files Browse the repository at this point in the history
due to deprecation KeyboardEvent.keyCode

resolves impress#849
  • Loading branch information
mengwong committed Mar 5, 2023
1 parent 6441ab0 commit bb37a47
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 31 deletions.
4 changes: 2 additions & 2 deletions src/plugins/blackout/blackout.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
gc.addEventListener( document, "keydown", function( event ) {

// Accept b or . -> . is sent by presentation remote controllers
if ( event.keyCode === 66 || event.keyCode === 190 ) {
if ( [ "KeyB", "Period" ].includes(event.key) {
event.preventDefault();
if ( !blackedOut ) {
blackout();
Expand All @@ -105,7 +105,7 @@
gc.addEventListener( document, "keyup", function( event ) {

// Accept b or . -> . is sent by presentation remote controllers
if ( event.keyCode === 66 || event.keyCode === 190 ) {
if ( [ "KeyB", "Period" ].includes(event.key) {
event.preventDefault();
}
}, false );
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/help/help.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@

document.addEventListener( "keyup", function( event ) {

if ( event.keyCode === 72 || event.keyCode === 191 ) { // "h" || "?"
// "h" || "?" -- but this seems brittle, what about keyboards that don't have / ? together?
if ( [ "KeyH", "Slash" ].includes(event.key) ) {
event.preventDefault();
toggleHelp();
}
Expand Down
20 changes: 10 additions & 10 deletions src/plugins/impressConsole/impressConsole.js
Original file line number Diff line number Diff line change
Expand Up @@ -314,23 +314,23 @@
}
};

var registerKeyEvent = function( keyCodes, handler, window ) {
var registerKeyEvent = function( keys, handler, window ) {
if ( window === undefined ) {
window = consoleWindow;
}

// Prevent default keydown action when one of supported key is pressed
window.document.addEventListener( 'keydown', function( event ) {
if ( !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey &&
keyCodes.indexOf( event.keyCode ) !== -1 ) {
keys.includes( event.key ) ) {
event.preventDefault();
}
}, false );

// Trigger impress action on keyup
window.document.addEventListener( 'keyup', function( event ) {
if ( !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey &&
keyCodes.indexOf( event.keyCode ) !== -1 ) {
keys.includes( event.key) ) {
handler();
event.preventDefault();
}
Expand Down Expand Up @@ -451,16 +451,16 @@

// Keyboard navigation handlers
// 33: pg up, 37: left, 38: up
registerKeyEvent( [ 33, 37, 38 ], window.impress().prev );
registerKeyEvent( [ "PageUp", "ArrowLeft", "ArrowUp" ], window.impress().prev );

// 34: pg down, 39: right, 40: down
registerKeyEvent( [ 34, 39, 40 ], window.impress().next );
registerKeyEvent( [ "PageDown", "ArrowRight", "ArrowDown" ], window.impress().next );

// 32: space
registerKeyEvent( [ 32 ], spaceHandler );
registerKeyEvent( [ "Space" ], spaceHandler );

// 82: R
registerKeyEvent( [ 82 ], timerReset );
registerKeyEvent( [ "KeyR" ], timerReset );

// Cleanup
consoleWindow.onbeforeunload = function() {
Expand Down Expand Up @@ -565,7 +565,7 @@
};

//Open speaker console when they press 'p'
registerKeyEvent( [ 80 ], open, window );
registerKeyEvent( [ "KeyP" ], open, window );

//Btw, you can also launch console automatically:
//<div id="impress" data-console-autolaunch="true">
Expand All @@ -592,12 +592,12 @@
/**
* Register a key code to an event handler
*
* :param: event.detail.keyCodes List of key codes
* :param: event.detail.keys List of keys
* :param: event.detail.handler A function registered as the event handler
* :param: event.detail.window The console window to register the keycode in
*/
root.addEventListener( 'impress:console:registerKeyEvent', function( event ) {
registerKeyEvent( event.detail.keyCodes, event.detail.handler, event.detail.window );
registerKeyEvent( event.detail.keys, event.detail.handler, event.detail.window );
} );

// Return the object
Expand Down
32 changes: 14 additions & 18 deletions src/plugins/navigation/navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

// In the case of TAB, we force step navigation always, overriding the browser
// navigation between input elements, buttons and links.
if ( event.keyCode === 9 ) {
if ( event.key === "Tab" ) {
return true;
}

Expand All @@ -67,8 +67,8 @@
return false;
}

if ( ( event.keyCode >= 32 && event.keyCode <= 34 ) ||
( event.keyCode >= 37 && event.keyCode <= 40 ) ) {
if ( "Space PageUp PageDown ArrowLeft ArrowRight ArrowUp ArrowDown"
.split(" ").includes(event.key) ) {
return true;
}
};
Expand All @@ -86,25 +86,21 @@
gc.addEventListener( document, "keyup", function( event ) {
if ( isNavigationEvent( event ) ) {
if ( event.shiftKey ) {
switch ( event.keyCode ) {
case 9: // Shift+tab
switch ( event.key ) {
case "Tab": // Shift+tab
api.prev();
break;
}
} else {
switch ( event.keyCode ) {
case 33: // Pg up
case 37: // Left
case 38: // Up
api.prev( event );
break;
case 9: // Tab
case 32: // Space
case 34: // Pg down
case 39: // Right
case 40: // Down
api.next( event );
break;
switch ( event.key ) {
case "PageUp":
case "ArrowLeft":
case "ArrowUp": api.prev( event ); break;
case "Tab":
case "Space":
case "PageDown":
case "ArrowRight":
case "ArrowDown": api.next( event ); break;
}
}
event.preventDefault();
Expand Down

0 comments on commit bb37a47

Please sign in to comment.