mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	Always allow Alt as an orbit modifier in the 3D editor
This makes it easier to navigate in 3D when using a graphics tablet. This fallback modifier will only be available if no other modifier is using Alt. This partially addresses https://github.com/godotengine/godot-proposals/issues/196.
This commit is contained in:
		
							parent
							
								
									14e52f7aee
								
							
						
					
					
						commit
						1e28571d82
					
				
					 1 changed files with 19 additions and 13 deletions
				
			
		|  | @ -965,7 +965,7 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				if (b->is_pressed()) { | 				if (b->is_pressed()) { | ||||||
| 					int mod = _get_key_modifier(b); | 					const int mod = _get_key_modifier(b); | ||||||
| 					if (!orthogonal) { | 					if (!orthogonal) { | ||||||
| 						if (mod == _get_key_modifier_setting("editors/3d/freelook/freelook_activation_modifier")) { | 						if (mod == _get_key_modifier_setting("editors/3d/freelook/freelook_activation_modifier")) { | ||||||
| 							set_freelook_active(true); | 							set_freelook_active(true); | ||||||
|  | @ -1656,14 +1656,16 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | ||||||
| 
 | 
 | ||||||
| 			if (nav_scheme == NAVIGATION_GODOT) { | 			if (nav_scheme == NAVIGATION_GODOT) { | ||||||
| 
 | 
 | ||||||
| 				int mod = _get_key_modifier(m); | 				const int mod = _get_key_modifier(m); | ||||||
| 
 | 
 | ||||||
| 				if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) | 				if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) { | ||||||
| 					nav_mode = NAVIGATION_PAN; | 					nav_mode = NAVIGATION_PAN; | ||||||
| 				else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) | 				} else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) { | ||||||
| 					nav_mode = NAVIGATION_ZOOM; | 					nav_mode = NAVIGATION_ZOOM; | ||||||
| 				else if (mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) | 				} else if (mod == KEY_ALT || mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) { | ||||||
|  | 					// Always allow Alt as a modifier to better support graphic tablets.
 | ||||||
| 					nav_mode = NAVIGATION_ORBIT; | 					nav_mode = NAVIGATION_ORBIT; | ||||||
|  | 				} | ||||||
| 
 | 
 | ||||||
| 			} else if (nav_scheme == NAVIGATION_MAYA) { | 			} else if (nav_scheme == NAVIGATION_MAYA) { | ||||||
| 				if (m->get_alt()) | 				if (m->get_alt()) | ||||||
|  | @ -1672,15 +1674,17 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | ||||||
| 
 | 
 | ||||||
| 		} else if (EditorSettings::get_singleton()->get("editors/3d/navigation/emulate_3_button_mouse")) { | 		} else if (EditorSettings::get_singleton()->get("editors/3d/navigation/emulate_3_button_mouse")) { | ||||||
| 			// Handle trackpad (no external mouse) use case
 | 			// Handle trackpad (no external mouse) use case
 | ||||||
| 			int mod = _get_key_modifier(m); | 			const int mod = _get_key_modifier(m); | ||||||
| 
 | 
 | ||||||
| 			if (mod) { | 			if (mod) { | ||||||
| 				if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) | 				if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) { | ||||||
| 					nav_mode = NAVIGATION_PAN; | 					nav_mode = NAVIGATION_PAN; | ||||||
| 				else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) | 				} else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) { | ||||||
| 					nav_mode = NAVIGATION_ZOOM; | 					nav_mode = NAVIGATION_ZOOM; | ||||||
| 				else if (mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) | 				} else if (mod == KEY_ALT || mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) { | ||||||
|  | 					// Always allow Alt as a modifier to better support graphic tablets.
 | ||||||
| 					nav_mode = NAVIGATION_ORBIT; | 					nav_mode = NAVIGATION_ORBIT; | ||||||
|  | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -1727,14 +1731,16 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | ||||||
| 
 | 
 | ||||||
| 		if (nav_scheme == NAVIGATION_GODOT) { | 		if (nav_scheme == NAVIGATION_GODOT) { | ||||||
| 
 | 
 | ||||||
| 			int mod = _get_key_modifier(pan_gesture); | 			const int mod = _get_key_modifier(pan_gesture); | ||||||
| 
 | 
 | ||||||
| 			if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) | 			if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) { | ||||||
| 				nav_mode = NAVIGATION_PAN; | 				nav_mode = NAVIGATION_PAN; | ||||||
| 			else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) | 			} else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) { | ||||||
| 				nav_mode = NAVIGATION_ZOOM; | 				nav_mode = NAVIGATION_ZOOM; | ||||||
| 			else if (mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) | 			} else if (mod == KEY_ALT || mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) { | ||||||
|  | 				// Always allow Alt as a modifier to better support graphic tablets.
 | ||||||
| 				nav_mode = NAVIGATION_ORBIT; | 				nav_mode = NAVIGATION_ORBIT; | ||||||
|  | 			} | ||||||
| 
 | 
 | ||||||
| 		} else if (nav_scheme == NAVIGATION_MAYA) { | 		} else if (nav_scheme == NAVIGATION_MAYA) { | ||||||
| 			if (pan_gesture->get_alt()) | 			if (pan_gesture->get_alt()) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hugo Locurcio
						Hugo Locurcio