aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/keyboard.js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2020-03-10 20:40:35 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2020-03-10 20:40:35 +0100
commitac15678dea78248c0a293a1d1d677bef96d60127 (patch)
tree30813b9397fc2918e8cef9e76654eb2a845a6373 /js/controllers/keyboard.js
parent3d6212378aeaed4ce2f4ffd070b79cecf221977e (diff)
downloadfosdem-2021-minimalism-presentation-ac15678dea78248c0a293a1d1d677bef96d60127.tar
fosdem-2021-minimalism-presentation-ac15678dea78248c0a293a1d1d677bef96d60127.tar.gz
refactoring
Diffstat (limited to 'js/controllers/keyboard.js')
-rw-r--r--js/controllers/keyboard.js60
1 files changed, 34 insertions, 26 deletions
diff --git a/js/controllers/keyboard.js b/js/controllers/keyboard.js
index 6658cf9..7fad615 100644
--- a/js/controllers/keyboard.js
+++ b/js/controllers/keyboard.js
@@ -1,7 +1,7 @@
-import { extend, toArray, enterFullscreen } from '../utils/util.js'
+import { enterFullscreen } from '../utils/util.js'
/**
- *
+ * Handles all reveal.js keyboard interactions.
*/
export default class Keyboard {
@@ -21,30 +21,9 @@ export default class Keyboard {
}
- refreshSortcuts() {
-
- // Define our contextual list of keyboard shortcuts
- if( this.Reveal.getConfig().navigationMode === 'linear' ) {
- this.shortcuts['&#8594; , &#8595; , SPACE , N , L , J'] = 'Next slide';
- this.shortcuts['&#8592; , &#8593; , P , H , K'] = 'Previous slide';
- }
- else {
- this.shortcuts['N , SPACE'] = 'Next slide';
- this.shortcuts['P'] = 'Previous slide';
- this.shortcuts['&#8592; , H'] = 'Navigate left';
- this.shortcuts['&#8594; , L'] = 'Navigate right';
- this.shortcuts['&#8593; , K'] = 'Navigate up';
- this.shortcuts['&#8595; , J'] = 'Navigate down';
- }
-
- this.shortcuts['Home , Shift &#8592;'] = 'First slide';
- this.shortcuts['End , Shift &#8594;'] = 'Last slide';
- this.shortcuts['B , .'] = 'Pause';
- this.shortcuts['F'] = 'Fullscreen';
- this.shortcuts['ESC, O'] = 'Slide overview';
-
- }
-
+ /**
+ * Starts listening for keyboard events.
+ */
bind() {
document.addEventListener( 'keydown', this.onDocumentKeyDown, false );
@@ -52,6 +31,9 @@ export default class Keyboard {
}
+ /**
+ * Stops listening for keyboard events.
+ */
unbind() {
document.removeEventListener( 'keydown', this.onDocumentKeyDown, false );
@@ -92,6 +74,32 @@ export default class Keyboard {
}
/**
+ * Updates our keyboard shortcuts based on current settings.
+ */
+ refreshSortcuts() {
+
+ if( this.Reveal.getConfig().navigationMode === 'linear' ) {
+ this.shortcuts['&#8594; , &#8595; , SPACE , N , L , J'] = 'Next slide';
+ this.shortcuts['&#8592; , &#8593; , P , H , K'] = 'Previous slide';
+ }
+ else {
+ this.shortcuts['N , SPACE'] = 'Next slide';
+ this.shortcuts['P'] = 'Previous slide';
+ this.shortcuts['&#8592; , H'] = 'Navigate left';
+ this.shortcuts['&#8594; , L'] = 'Navigate right';
+ this.shortcuts['&#8593; , K'] = 'Navigate up';
+ this.shortcuts['&#8595; , J'] = 'Navigate down';
+ }
+
+ this.shortcuts['Home , Shift &#8592;'] = 'First slide';
+ this.shortcuts['End , Shift &#8594;'] = 'Last slide';
+ this.shortcuts['B , .'] = 'Pause';
+ this.shortcuts['F'] = 'Fullscreen';
+ this.shortcuts['ESC, O'] = 'Slide overview';
+
+ }
+
+ /**
* Programmatically triggers a keyboard event
*
* @param {int} keyCode