diff options
author | Hakim El Hattab <hakim.elhattab@gmail.com> | 2020-03-10 20:40:35 +0100 |
---|---|---|
committer | Hakim El Hattab <hakim.elhattab@gmail.com> | 2020-03-10 20:40:35 +0100 |
commit | ac15678dea78248c0a293a1d1d677bef96d60127 (patch) | |
tree | 30813b9397fc2918e8cef9e76654eb2a845a6373 /js/controllers/keyboard.js | |
parent | 3d6212378aeaed4ce2f4ffd070b79cecf221977e (diff) | |
download | fosdem-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.js | 60 |
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['→ , ↓ , SPACE , N , L , J'] = 'Next slide'; - this.shortcuts['← , ↑ , P , H , K'] = 'Previous slide'; - } - else { - this.shortcuts['N , SPACE'] = 'Next slide'; - this.shortcuts['P'] = 'Previous slide'; - this.shortcuts['← , H'] = 'Navigate left'; - this.shortcuts['→ , L'] = 'Navigate right'; - this.shortcuts['↑ , K'] = 'Navigate up'; - this.shortcuts['↓ , J'] = 'Navigate down'; - } - - this.shortcuts['Home , Shift ←'] = 'First slide'; - this.shortcuts['End , Shift →'] = '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['→ , ↓ , SPACE , N , L , J'] = 'Next slide'; + this.shortcuts['← , ↑ , P , H , K'] = 'Previous slide'; + } + else { + this.shortcuts['N , SPACE'] = 'Next slide'; + this.shortcuts['P'] = 'Previous slide'; + this.shortcuts['← , H'] = 'Navigate left'; + this.shortcuts['→ , L'] = 'Navigate right'; + this.shortcuts['↑ , K'] = 'Navigate up'; + this.shortcuts['↓ , J'] = 'Navigate down'; + } + + this.shortcuts['Home , Shift ←'] = 'First slide'; + this.shortcuts['End , Shift →'] = 'Last slide'; + this.shortcuts['B , .'] = 'Pause'; + this.shortcuts['F'] = 'Fullscreen'; + this.shortcuts['ESC, O'] = 'Slide overview'; + + } + + /** * Programmatically triggers a keyboard event * * @param {int} keyCode |