diff --git a/src/edit/src/editor.cpp b/src/edit/src/editor.cpp index 9388074dca954005136e76e0cd2b279913bcab7f..4618254a6e57ac0b3969213b60ee4c00b571f105 100644 --- a/src/edit/src/editor.cpp +++ b/src/edit/src/editor.cpp @@ -2282,6 +2282,7 @@ void Editor::exitManipulateModule() void Editor::exitRotateComponent() { scene->manageSelection(nullptr); + selected_module = nullptr; prev_rebuild_node = nullptr; can_rotate_component = true; is_rotating_component = false; @@ -2680,7 +2681,7 @@ void Editor::teleportModulesByConnectors(const connector_ptr source_connector, c const auto oriented_angle = glm::orientedAngle(source_north, destination_north, destination_facing); source_parent->rotateRotationQuat(glm::angleAxis(oriented_angle, destination_facing)); - + // Rotate to selected cardinality auto orientation = glm::radians(rofi::cardinal_to_degree(selected_cardinality)); diff --git a/src/gui/src/ui.cpp b/src/gui/src/ui.cpp index ee8affdb4d0e1ff169ad65f3f4831f7c4b2215f2..5f95fe865cad4b4303723c19b5f015a0b34ab4b5 100644 --- a/src/gui/src/ui.cpp +++ b/src/gui/src/ui.cpp @@ -736,6 +736,10 @@ void module_rotation_ui(const osi::Window &window, edit::UIData &data) ImGui::End(); + // DragFloat still changes value when step is set to 0 + if (data.module_rotation_step == 0) + euler_angles = prev_euler_angles; + data.module_rotation_angles = euler_angles - prev_euler_angles; data.is_rotating_module = data.module_rotation_angles != glm::vec3(0.0f, 0.0f, 0.0f); } @@ -827,6 +831,10 @@ void component_rotation_ui(const osi::Window &window, edit::UIData &data) ImGui::End(); + // DragFloat still changes value when step is set to 0 + if (data.component_rotation_step == 0) + current_rotation = prev_rotation; + data.component_rotation_angle = component_info == "Body A" ? prev_rotation - current_rotation : current_rotation - prev_rotation; data.is_rotating_component = data.component_rotation_angle != 0; }