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 ) { if( 'addEventListener' in window ) {
( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture ); ( 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; connected = true;
setupIframes( data ); setupIframes( data );
setupKeyboard();
setupNotes(); setupNotes();
setupTimer(); setupTimer();
} }
@ -247,6 +248,19 @@
// Limit to max one state update per X ms // Limit to max one state update per X ms
handleStateMessage = debounce( handleStateMessage, 200 ); 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. * Creates the preview iframes.
*/ */