From 82342672ea09ed46580b25bd2d137f056d5faaa0 Mon Sep 17 00:00:00 2001
From: Hakim El Hattab <hakim.elhattab@gmail.com>
Date: Thu, 16 Oct 2014 16:17:41 +0200
Subject: [PATCH] fix navigatePrev in rtl mode #1030

---
 js/reveal.js | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/js/reveal.js b/js/reveal.js
index 4b1fbc8..1b7e432 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3426,10 +3426,20 @@
 				navigateUp();
 			}
 			else {
+				// Fetch the previous horizontal slide, if there is one
+				var previousSlide;
+
 				if( config.rtl ) {
-					navigateRight();
-				} else {
-					navigateLeft();
+					previousSlide = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.future' ) ).pop();
+				}
+				else {
+					previousSlide = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.past' ) ).pop();
+				}
+
+				if( previousSlide ) {
+					var v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;
+					var h = indexh - 1;
+					slide( h, v );
 				}
 			}
 		}
@@ -3437,16 +3447,20 @@
 	}
 
 	/**
-	 * Same as #navigatePrev() but navigates forwards.
+	 * The reverse of #navigatePrev().
 	 */
 	function navigateNext() {
 
 		// Prioritize revealing fragments
 		if( nextFragment() === false ) {
-			if( config.rtl ) {
-				availableRoutes().down ? navigateDown() : navigateLeft();
-			} else {
-				availableRoutes().down ? navigateDown() : navigateRight();
+			if( availableRoutes().down ) {
+				navigateDown();
+			}
+			else if( config.rtl ) {
+				navigateLeft();
+			}
+			else {
+				navigateRight();
 			}
 		}
 
-- 
GitLab