فهرست منبع

Made Undo/Redo a bindable key

Tyler Lindberg 7 سال پیش
والد
کامیت
5a5fe6c831
2فایلهای تغییر یافته به همراه23 افزوده شده و 20 حذف شده
  1. 2 1
      editor/js/Config.js
  2. 21 19
      editor/js/Sidebar.Controls.js

+ 2 - 1
editor/js/Config.js

@@ -23,7 +23,8 @@ var Config = function ( name ) {
 
 		'controls/translate': 'w',
 		'controls/rotate': 'e',
-		'controls/scale': 'r'
+		'controls/scale': 'r',
+		'controls/undo': 'z'
 	};
 
 	if ( window.localStorage[ name ] === undefined ) {

+ 21 - 19
editor/js/Sidebar.Controls.js

@@ -24,7 +24,8 @@ Sidebar.Controls = function ( editor ) {
 	var controlNames = [
 		'translate',
 		'rotate',
-		'scale'
+		'scale',
+		'undo'
 	];
 
 	for ( var i = 0; i < controlNames.length; i ++ ) {
@@ -105,41 +106,42 @@ Sidebar.Controls = function ( editor ) {
 
 				break;
 
-			case 'z': // Register Ctrl/Command-Z for Undo and Ctrl/Command-Shift-Z for Redo
-			case 'Z': // Safari and Firefox register lowercase z when Ctrl-Shift-Z is pressed
+			case editor.config.getKey( 'controls/translate' ): // Translation transform mode
 
-				if ( IS_MAC ? event.metaKey : event.ctrlKey ) {
+				editor.signals.transformModeChanged.dispatch( 'translate' );
 
-					if ( event.shiftKey ) {
+				break;
 
-						editor.redo();
+			case editor.config.getKey( 'controls/rotate' ): // Rotation transform mode
 
-					}					else {
+				editor.signals.transformModeChanged.dispatch( 'rotate' );
 
-						event.preventDefault(); // Prevent Safari reopen last tab
-						editor.undo();
+				break;
 
-					}
+			case editor.config.getKey( 'controls/scale' ): // Scaling transform mode
 
-				}
+				editor.signals.transformModeChanged.dispatch( 'scale' );
 
 				break;
 
-			case editor.config.getKey( 'controls/translate' ): // Translation transform mode
+			case editor.config.getKey( 'controls/undo' ).toLowerCase(): // Register Ctrl/Command-Z for Undo and Ctrl/Command-Shift-Z for Redo
+			case editor.config.getKey( 'controls/undo' ).toUpperCase(): // Safari and Firefox register lowercase z when Ctrl-Shift-Z is pressed
 
-				editor.signals.transformModeChanged.dispatch( 'translate' );
+				if ( IS_MAC ? event.metaKey : event.ctrlKey ) {
 
-				break;
+					event.preventDefault(); // Prevent browser specific hotkeys
 
-			case editor.config.getKey( 'controls/rotate' ): // Rotation transform mode
+					if ( event.shiftKey ) {
 
-				editor.signals.transformModeChanged.dispatch( 'rotate' );
+						editor.redo();
 
-				break;
+					} else {
 
-			case editor.config.getKey( 'controls/scale' ): // Scaling transform mode
+						editor.undo();
 
-				editor.signals.transformModeChanged.dispatch( 'scale' );
+					}
+
+				}
 
 				break;