Browse Source

stop auto-slide on pause and overview (closes #320)

Hakim El Hattab 12 years ago
parent
commit
2962325fd1
2 changed files with 18 additions and 2 deletions
  1. 17 1
      js/reveal.js
  2. 1 1
      js/reveal.min.js

+ 17 - 1
js/reveal.js

@@ -675,6 +675,9 @@ var Reveal = (function(){
 		// Only proceed if enabled in config
 		if( config.overview ) {
 
+			// Don't auto-slide while in overview mode
+			cancelAutoSlide();
+
 			var wasActive = dom.wrapper.classList.contains( 'overview' );
 
 			dom.wrapper.classList.add( 'overview' );
@@ -794,6 +797,8 @@ var Reveal = (function(){
 
 			slide( indexh, indexv );
 
+			cueAutoSlide();
+
 			// Notify observers of the overview hiding
 			dispatchEvent( 'overviewhidden', {
 				'indexh': indexh,
@@ -862,6 +867,7 @@ var Reveal = (function(){
 	 */
 	function pause() {
 
+		cancelAutoSlide();
 		dom.wrapper.classList.add( 'paused' );
 
 	}
@@ -871,6 +877,7 @@ var Reveal = (function(){
 	 */
 	function resume() {
 
+		cueAutoSlide();
 		dom.wrapper.classList.remove( 'paused' );
 
 	}
@@ -1424,12 +1431,21 @@ var Reveal = (function(){
 		clearTimeout( autoSlideTimeout );
 
 		// Cue the next auto-slide if enabled
-		if( autoSlide ) {
+		if( autoSlide && !isPaused() && !isOverviewActive() ) {
 			autoSlideTimeout = setTimeout( navigateNext, autoSlide );
 		}
 
 	}
 
+	/**
+	 * Cancels any ongoing request to auto-slide.
+	 */
+	function cancelAutoSlide() {
+
+		clearTimeout( autoSlideTimeout );
+
+	}
+
 	function navigateLeft() {
 
 		// Prioritize hiding fragments

File diff suppressed because it is too large
+ 1 - 1
js/reveal.min.js


Some files were not shown because too many files changed in this diff