Merge branch 'focus-body-on-visibility-change' of https://github.com/rexxars/reveal.js into dev
						commit
						a143861478
					
				
							
								
								
									
										36
									
								
								js/reveal.js
								
								
								
								
							
							
						
						
									
										36
									
								
								js/reveal.js
								
								
								
								
							| 
						 | 
					@ -80,6 +80,9 @@ var Reveal = (function(){
 | 
				
			||||||
			// Opens links in an iframe preview overlay
 | 
								// Opens links in an iframe preview overlay
 | 
				
			||||||
			previewLinks: false,
 | 
								previewLinks: false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Focuses body when page changes visiblity to ensure keyboard shortcuts work
 | 
				
			||||||
 | 
								focusBodyOnPageVisiblityChange: true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Theme (see /css/theme)
 | 
								// Theme (see /css/theme)
 | 
				
			||||||
			theme: null,
 | 
								theme: null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -606,10 +609,23 @@ var Reveal = (function(){
 | 
				
			||||||
			document.addEventListener( 'keydown', onDocumentKeyDown, false );
 | 
								document.addEventListener( 'keydown', onDocumentKeyDown, false );
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ( config.progress && dom.progress ) {
 | 
							if( config.progress && dom.progress ) {
 | 
				
			||||||
			dom.progress.addEventListener( 'click', onProgressClicked, false );
 | 
								dom.progress.addEventListener( 'click', onProgressClicked, false );
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if( config.focusBodyOnPageVisiblityChange ) {
 | 
				
			||||||
 | 
								var visibilityChange;
 | 
				
			||||||
 | 
								if ('hidden' in document) {
 | 
				
			||||||
 | 
									visibilityChange = 'visibilitychange';
 | 
				
			||||||
 | 
								} else if ('msHidden' in document) {
 | 
				
			||||||
 | 
									visibilityChange = 'msvisibilitychange';
 | 
				
			||||||
 | 
								} else if ('webkitHidden' in document) {
 | 
				
			||||||
 | 
									visibilityChange = 'webkitvisibilitychange';
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								document.addEventListener(visibilityChange, onPageVisibilityChange, false);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		[ 'touchstart', 'click' ].forEach( function( eventName ) {
 | 
							[ 'touchstart', 'click' ].forEach( function( eventName ) {
 | 
				
			||||||
			dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
 | 
								dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
 | 
				
			||||||
			dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
 | 
								dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
 | 
				
			||||||
| 
						 | 
					@ -2655,6 +2671,24 @@ var Reveal = (function(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Handle for the window level 'visibilitychange' event.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						function onPageVisibilityChange( event ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							var isHidden =  document.webkitHidden ||
 | 
				
			||||||
 | 
											document.msHidden ||
 | 
				
			||||||
 | 
											document.hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// If, after clicking a link or similar and we're coming back,
 | 
				
			||||||
 | 
							// focus the document.body to ensure we can use keyboard shortcuts
 | 
				
			||||||
 | 
							if( isHidden === false && document.activeElement !== document.body ) {
 | 
				
			||||||
 | 
								document.activeElement.blur();
 | 
				
			||||||
 | 
								document.body.focus();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Invoked when a slide is and we're in the overview.
 | 
						 * Invoked when a slide is and we're in the overview.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
		Reference in New Issue