Index: src/wp-admin/js/theme.js
===================================================================
--- src/wp-admin/js/theme.js	(revision 26685)
+++ src/wp-admin/js/theme.js	(working copy)
@@ -299,29 +299,9 @@
 		}
 	},
 
-	// Handles arrow keys navigation for the overlay
-	// Triggers theme:next and theme:previous events
+	// Handles .disabled classes for next/previous buttons
 	navigation: function() {
-		var self = this;
 
-		$( 'body' ).on( 'keyup', function( event ) {
-
-			// Pressing the right arrow key fires a theme:next event
-			if ( event.keyCode === 39 ) {
-				self.trigger( 'theme:next', self.model.cid );
-			}
-
-			// Pressing the left arrow key fires a theme:previous event
-			if ( event.keyCode === 37 ) {
-				self.trigger( 'theme:previous', self.model.cid );
-			}
-
-			// Pressing the escape key closes the theme details panel
-			if ( event.keyCode === 27 ) {
-				self.collapse();
-			}
-		});
-
 		// Disable Left/Right when at the start or end of the collection
 		if ( this.model.cid === this.model.collection.at(0).cid ) {
 			this.$el.find( '.left' ).addClass( 'disabled' );
@@ -409,6 +389,24 @@
 		this.listenTo( this.parent, 'theme:scroll', function() {
 			self.renderThemes( self.parent.page );
 		});
+
+		// Bind keyboard events.
+		$('body').on( 'keyup', function( event ) {
+			// Pressing the right arrow key fires a theme:next event
+			if ( event.keyCode === 39 ) {
+				self.overlay.nextTheme();
+			}
+
+			// Pressing the left arrow key fires a theme:previous event
+			if ( event.keyCode === 37 ) {
+				self.overlay.previousTheme();
+			}
+
+			// Pressing the escape key fires a theme:collapse event
+			if ( event.keyCode === 27 ) {
+				self.overlay.collapse();
+			}
+		});
 	},
 
 	// Manages rendering of theme pages
