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()) { | ||||
| 					int mod = _get_key_modifier(b); | ||||
| 					const int mod = _get_key_modifier(b); | ||||
| 					if (!orthogonal) { | ||||
| 						if (mod == _get_key_modifier_setting("editors/3d/freelook/freelook_activation_modifier")) { | ||||
| 							set_freelook_active(true); | ||||
|  | @ -1656,14 +1656,16 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | |||
| 
 | ||||
| 			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; | ||||
| 				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; | ||||
| 				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; | ||||
| 				} | ||||
| 
 | ||||
| 			} else if (nav_scheme == NAVIGATION_MAYA) { | ||||
| 				if (m->get_alt()) | ||||
|  | @ -1672,17 +1674,19 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | |||
| 
 | ||||
| 		} else if (EditorSettings::get_singleton()->get("editors/3d/navigation/emulate_3_button_mouse")) { | ||||
| 			// Handle trackpad (no external mouse) use case
 | ||||
| 			int mod = _get_key_modifier(m); | ||||
| 			const int mod = _get_key_modifier(m); | ||||
| 
 | ||||
| 			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; | ||||
| 				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; | ||||
| 				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; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		switch (nav_mode) { | ||||
| 			case NAVIGATION_PAN: { | ||||
|  | @ -1727,14 +1731,16 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { | |||
| 
 | ||||
| 		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; | ||||
| 			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; | ||||
| 			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; | ||||
| 			} | ||||
| 
 | ||||
| 		} else if (nav_scheme == NAVIGATION_MAYA) { | ||||
| 			if (pan_gesture->get_alt()) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hugo Locurcio
						Hugo Locurcio