diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 04845529d..221dceaf6 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -4585,9 +4585,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (hover_volume->is_text()) { m_selection.add_volumes(Selection::EMode::Volume, {(unsigned) hover_volume_id}); - if (type != GLGizmosManager::EType::Text) - m_gizmos.open_gizmo(GLGizmosManager::EType::Text); + if (type == GLGizmosManager::EType::Text) + m_gizmos.open_gizmo(GLGizmosManager::EType::Text); // close text wxGetApp().obj_list()->update_selections(); + m_gizmos.open_gizmo(GLGizmosManager::EType::Text); return; } /* else if (hover_volume->text_configuration.has_value()) { @@ -4598,9 +4599,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) }*/ else if(hover_volume->emboss_shape.has_value()){ m_selection.add_volumes(Selection::EMode::Volume, {(unsigned) hover_volume_id}); - if (type != GLGizmosManager::EType::Svg) - m_gizmos.open_gizmo(GLGizmosManager::EType::Svg); + if (type == GLGizmosManager::EType::Svg) + m_gizmos.open_gizmo(GLGizmosManager::EType::Svg);// close svg wxGetApp().obj_list()->update_selections(); + m_gizmos.open_gizmo(GLGizmosManager::EType::Svg); return; } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp index 8b1ee538f..92d6dcaf9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp @@ -508,6 +508,7 @@ void GLGizmoSVG::on_set_state() { // Closing gizmo. e.g. selecting another one if (GLGizmoBase::m_state == GLGizmoBase::Off) { + ImGui::FocusWindow(nullptr); // exit cursor m_parent.enable_moving(true); // modify by bbs reset_volume(); } else if (GLGizmoBase::m_state == GLGizmoBase::On) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp index 03c51db5a..2235b57b0 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp @@ -457,6 +457,7 @@ void GLGizmoText::on_set_state() } } else if (m_state == EState::Off) { + ImGui::FocusWindow(nullptr);//exit cursor m_reedit_text = false; m_fix_old_tran_flag = false; close_warning_flag_after_close_or_drag();