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
@ -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,17 +1674,19 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (nav_mode) {
|
switch (nav_mode) {
|
||||||
case NAVIGATION_PAN: {
|
case NAVIGATION_PAN: {
|
||||||
@ -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…
Reference in New Issue
Block a user