Jelajahi Sumber

? keyboard shortcut should not trigger when focus is on an editable element fixes #2645

Hakim El Hattab 1 tahun lalu
induk
melakukan
0072845828
5 mengubah file dengan 7 tambahan dan 20 penghapusan
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.esm.js.map
  3. 0 0
      dist/reveal.js
  4. 0 0
      dist/reveal.js.map
  5. 7 20
      js/controllers/keyboard.js

File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.esm.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.esm.js.map


File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/reveal.js.map


+ 7 - 20
js/controllers/keyboard.js

@@ -17,7 +17,6 @@ export default class Keyboard {
 		this.bindings = {};
 
 		this.onDocumentKeyDown = this.onDocumentKeyDown.bind( this );
-		this.onDocumentKeyPress = this.onDocumentKeyPress.bind( this );
 
 	}
 
@@ -54,7 +53,6 @@ export default class Keyboard {
 	bind() {
 
 		document.addEventListener( 'keydown', this.onDocumentKeyDown, false );
-		document.addEventListener( 'keypress', this.onDocumentKeyPress, false );
 
 	}
 
@@ -64,7 +62,6 @@ export default class Keyboard {
 	unbind() {
 
 		document.removeEventListener( 'keydown', this.onDocumentKeyDown, false );
-		document.removeEventListener( 'keypress', this.onDocumentKeyPress, false );
 
 	}
 
@@ -135,20 +132,6 @@ export default class Keyboard {
 
 	}
 
-	/**
-	 * Handler for the document level 'keypress' event.
-	 *
-	 * @param {object} event
-	 */
-	onDocumentKeyPress( event ) {
-
-		// Check if the pressed key is question mark
-		if( event.shiftKey && event.charCode === 63 ) {
-			this.Reveal.toggleHelp();
-		}
-
-	}
-
 	/**
 	 * Handler for the document level 'keydown' event.
 	 *
@@ -184,10 +167,10 @@ export default class Keyboard {
 		let activeElementIsNotes = document.activeElement && document.activeElement.className && /speaker-notes/i.test( document.activeElement.className);
 
 		// Whitelist certain modifiers for slide navigation shortcuts
-		let isNavigationKey = [32, 37, 38, 39, 40, 78, 80].indexOf( event.keyCode ) !== -1;
+		let keyCodeUsesModifier = [32, 37, 38, 39, 40, 78, 80, 191].indexOf( event.keyCode ) !== -1;
 
 		// Prevent all other events when a modifier is pressed
-		let unusedModifier = 	!( isNavigationKey && event.shiftKey || event.altKey ) &&
+		let unusedModifier = 	!( keyCodeUsesModifier && event.shiftKey || event.altKey ) &&
 								( event.shiftKey || event.altKey || event.ctrlKey || event.metaKey );
 
 		// Disregard the event if there's a focused element or a
@@ -351,7 +334,7 @@ export default class Keyboard {
 				}
 			}
 			// TWO-SPOT, SEMICOLON, B, V, PERIOD, LOGITECH PRESENTER TOOLS "BLACK SCREEN" BUTTON
-			else if( keyCode === 58 || keyCode === 59 || keyCode === 66 || keyCode === 86 || keyCode === 190 || keyCode === 191 ) {
+			else if( [58, 59, 66, 86, 190].includes( keyCode ) || ( keyCode === 191 && !event.shiftKey ) ) {
 				this.Reveal.togglePause();
 			}
 			// F
@@ -370,6 +353,10 @@ export default class Keyboard {
 					this.Reveal.toggleJumpToSlide();
 				}
 			}
+			// ?
+			else if( keyCode === 191 && event.shiftKey ) {
+				this.Reveal.toggleHelp();
+			}
 			else {
 				triggered = false;
 			}

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini