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) {
|
||||
case InputEvent::MOUSE_BUTTON: {
|
||||
|
||||
|
@ -1204,11 +1203,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
|||
}
|
||||
} break;
|
||||
case InputEvent::MOUSE_MOTION: {
|
||||
|
||||
const InputEventMouseMotion &m=p_event.mouse_motion;
|
||||
_edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
|
||||
|
||||
|
||||
|
||||
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");
|
||||
NavigationMode nav_mode = NAVIGATION_NONE;
|
||||
|
||||
|
||||
if (_edit.gizmo.is_valid()) {
|
||||
|
||||
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)
|
||||
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) {
|
||||
|
|
Loading…
Reference in New Issue