diff --git a/src/experimental/studio/app.cc b/src/experimental/studio/app.cc index cf7d28e9..b221fa61 100644 --- a/src/experimental/studio/app.cc +++ b/src/experimental/studio/app.cc @@ -461,14 +461,20 @@ void App::HandleMouseEvents() { if (perturb_.select > 0) { mjtMouse action = mjMOUSE_NONE; if (ImGui::IsMouseDown(ImGuiMouseButton_Left)) { - action = io.KeyShift ? mjMOUSE_ROTATE_H : mjMOUSE_ROTATE_V; + if (io.KeyAlt) { + action = io.KeyShift ? mjMOUSE_MOVE_H : mjMOUSE_MOVE_V; + } else { + action = io.KeyShift ? mjMOUSE_ROTATE_H : mjMOUSE_ROTATE_V; + } } else if (ImGui::IsMouseDown(ImGuiMouseButton_Right)) { action = io.KeyShift ? mjMOUSE_MOVE_H : mjMOUSE_MOVE_V; } else if (ImGui::IsMouseDown(ImGuiMouseButton_Middle)) { action = mjMOUSE_ZOOM; } const mjtPertBit active = - action == mjMOUSE_MOVE_V ? mjPERT_TRANSLATE : mjPERT_ROTATE; + (action == mjMOUSE_MOVE_V || action == mjMOUSE_MOVE_H) + ? mjPERT_TRANSLATE + : mjPERT_ROTATE; if (active != perturb_.active) { platform::InitPerturb(model(), data(), &camera_, &perturb_, active); }