enable reveal.js keyboard shortcuts anywhere in notes window
This commit is contained in:
		| @@ -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 } ); | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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. | ||||||
| 				 */ | 				 */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user