aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2014-04-26 11:35:55 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2014-04-26 11:36:03 +0200
commit1e5ca748a49b35ec698fc73d0420bb63534b9ae7 (patch)
tree5e82781030c5659d83b44880f2e34785f2be9c75
parent54ca9edeed077c4f7e564d0fa26c086af28a02ee (diff)
downloadfreenode-live-2017-presentation-1e5ca748a49b35ec698fc73d0420bb63534b9ae7.tar
freenode-live-2017-presentation-1e5ca748a49b35ec698fc73d0420bb63534b9ae7.tar.gz
enable reveal.js keyboard shortcuts anywhere in notes window
-rw-r--r--js/reveal.js5
-rw-r--r--plugin/notes/notes.html14
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 ) {