enable reveal.js keyboard shortcuts anywhere in notes window

This commit is contained in:
Hakim El Hattab 2014-04-26 11:35:55 +02:00
parent 54ca9edeed
commit 1e5ca748a4
2 changed files with 19 additions and 0 deletions

View file

@ -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 } );
}
};

View file

@ -208,6 +208,7 @@
connected = true;
setupIframes( data );
setupKeyboard();
setupNotes();
setupTimer();
}
@ -247,6 +248,19 @@
// Limit to max one state update per X ms
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.
*/