Added rotation/panning support for trackpads in 3D mode #53
(cherry picked from commit 3ebde34d8f
)
This commit is contained in:
parent
4bde902de1
commit
5c98674a8b
|
@ -819,7 +819,6 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch(p_event.type) {
|
switch(p_event.type) {
|
||||||
case InputEvent::MOUSE_BUTTON: {
|
case InputEvent::MOUSE_BUTTON: {
|
||||||
|
|
||||||
|
@ -1204,11 +1203,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case InputEvent::MOUSE_MOTION: {
|
case InputEvent::MOUSE_MOTION: {
|
||||||
|
|
||||||
const InputEventMouseMotion &m=p_event.mouse_motion;
|
const InputEventMouseMotion &m=p_event.mouse_motion;
|
||||||
_edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
|
_edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
|
||||||
|
|
||||||
|
|
||||||
if (spatial_editor->get_selected()) {
|
if (spatial_editor->get_selected()) {
|
||||||
|
|
||||||
|
|
||||||
|
@ -1244,7 +1241,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
||||||
|
|
||||||
NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
|
NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
|
||||||
NavigationMode nav_mode = NAVIGATION_NONE;
|
NavigationMode nav_mode = NAVIGATION_NONE;
|
||||||
|
|
||||||
if (_edit.gizmo.is_valid()) {
|
if (_edit.gizmo.is_valid()) {
|
||||||
|
|
||||||
Plane plane=Plane(_edit.gizmo_initial_pos,_get_camera_normal());
|
Plane plane=Plane(_edit.gizmo_initial_pos,_get_camera_normal());
|
||||||
|
@ -1558,6 +1555,26 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
||||||
if (m.mod.alt)
|
if (m.mod.alt)
|
||||||
nav_mode = NAVIGATION_PAN;
|
nav_mode = NAVIGATION_PAN;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
// Handle trackpad (no external mouse) use case
|
||||||
|
int mod = 0;
|
||||||
|
if (m.mod.shift)
|
||||||
|
mod=KEY_SHIFT;
|
||||||
|
if (m.mod.alt)
|
||||||
|
mod=KEY_ALT;
|
||||||
|
if (m.mod.control)
|
||||||
|
mod=KEY_CONTROL;
|
||||||
|
if (m.mod.meta)
|
||||||
|
mod=KEY_META;
|
||||||
|
|
||||||
|
if(mod){
|
||||||
|
if (mod == _get_key_modifier("3d_editor/pan_modifier"))
|
||||||
|
nav_mode = NAVIGATION_PAN;
|
||||||
|
else if (mod == _get_key_modifier("3d_editor/zoom_modifier"))
|
||||||
|
nav_mode = NAVIGATION_ZOOM;
|
||||||
|
else if (mod == _get_key_modifier("3d_editor/orbit_modifier"))
|
||||||
|
nav_mode = NAVIGATION_ORBIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(nav_mode) {
|
switch(nav_mode) {
|
||||||
|
|
Loading…
Reference in New Issue