| 
					
				 | 
			
			
				@@ -124,6 +124,9 @@ var Reveal = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// Force a layout when the whole page, incl fonts, has loaded 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		window.addEventListener( 'load', layout, false ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// Copy options over to our config object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		extend( config, options ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -367,12 +370,13 @@ var Reveal = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if ( config.controls && dom.controls ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsLeft.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateLeft ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsRight.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateRight ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsUp.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateUp ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsDown.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateDown ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsPrev.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigatePrev ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsNext.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateNext ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var actionEvent = 'ontouchstart' in window ? 'touchstart' : 'click'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsLeft.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateLeft ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsRight.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateRight ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsUp.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateUp ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsDown.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateDown ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsPrev.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigatePrev ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsNext.forEach( function( el ) { el.addEventListener( actionEvent, preventAndForward( navigateNext ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -392,12 +396,13 @@ var Reveal = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if ( config.controls && dom.controls ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsLeft.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateLeft ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsRight.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateRight ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsUp.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateUp ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsDown.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateDown ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsPrev.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigatePrev ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dom.controlsNext.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateNext ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var actionEvent = 'ontouchstart' in window ? 'touchstart' : 'click'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsLeft.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateLeft ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsRight.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateRight ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsUp.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateUp ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsDown.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateDown ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsPrev.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigatePrev ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dom.controlsNext.forEach( function( el ) { el.removeEventListener( actionEvent, preventAndForward( navigateNext ), false ); } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -776,12 +781,6 @@ var Reveal = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// No need to proceed if we're navigating to the same slide as  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// we're already on, unless a fragment index is specified 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if( indexh === indexhBefore && indexv === indexvBefore && !f ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		layout(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// Apply the new state 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -823,8 +822,9 @@ var Reveal = (function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// Store references to the previous and current slides 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// Show fragment, if specified 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if ( typeof f !== undefined ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if( ( indexh !== indexhBefore || indexv !== indexvBefore ) && f ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			var fragments = currentSlide.querySelectorAll( '.fragment' ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			toArray( fragments ).forEach( function( fragment, indexf ) { 
			 |