diff options
author | Hakim El Hattab <hakim.elhattab@gmail.com> | 2014-04-26 11:35:55 +0200 |
---|---|---|
committer | Hakim El Hattab <hakim.elhattab@gmail.com> | 2014-04-26 11:36:03 +0200 |
commit | 1e5ca748a49b35ec698fc73d0420bb63534b9ae7 (patch) | |
tree | 5e82781030c5659d83b44880f2e34785f2be9c75 | |
parent | 54ca9edeed077c4f7e564d0fa26c086af28a02ee (diff) | |
download | fosdem-2018-presentation-1e5ca748a49b35ec698fc73d0420bb63534b9ae7.tar fosdem-2018-presentation-1e5ca748a49b35ec698fc73d0420bb63534b9ae7.tar.gz |
enable reveal.js keyboard shortcuts anywhere in notes window
-rw-r--r-- | js/reveal.js | 5 | ||||
-rw-r--r-- | plugin/notes/notes.html | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/js/reveal.js b/js/reveal.js index 7a032d0..d81a19d 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -3702,6 +3702,11 @@ var Reveal = (function(){ if( 'addEventListener' in window ) { ( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture ); } + }, + + // Programatically triggers a keyboard event + triggerKey: function( keyCode ) { + onDocumentKeyDown( { keyCode: keyCode } ); } }; diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html index e488075..30e1669 100644 --- a/plugin/notes/notes.html +++ b/plugin/notes/notes.html @@ -208,6 +208,7 @@ connected = true; setupIframes( data ); + setupKeyboard(); setupNotes(); setupTimer(); } @@ -248,6 +249,19 @@ handleStateMessage = debounce( handleStateMessage, 200 ); /** + * Forward keyboard events to the current slide window. + * This enables keyboard events to work even if focus + * isn't set on the current slide iframe. + */ + function setupKeyboard() { + + document.addEventListener( 'keydown', function( event ) { + currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' ); + } ); + + } + + /** * Creates the preview iframes. */ function setupIframes( data ) { |