From ada57e717501393fc46d14439c081c21b7bd6805 Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Tue, 3 Dec 2024 20:00:09 +0800 Subject: [PATCH] FIX:double click text should change data and exit cursor jira: STUDIO-9071 Change-Id: I7a3f5f3da2094e96aff79de61bf236ee9241fde9 --- src/slic3r/GUI/GLCanvas3D.cpp | 10 ++++++---- src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp | 1 + src/slic3r/GUI/Gizmos/GLGizmoText.cpp | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) 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();