From c44a240ec0427eca4ed0424fe9bbd8ac7f11f4f0 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Fri, 17 Mar 2023 16:29:56 +0800 Subject: [PATCH] FIX: [STUDIO-2511] handle dbl click in ComboBox Change-Id: I27075e43de4a78446972806b57771f0880677935 --- src/slic3r/GUI/GLCanvas3D.cpp | 5 ++++- src/slic3r/GUI/GLCanvas3D.hpp | 1 + src/slic3r/GUI/Widgets/ComboBox.cpp | 1 + src/slic3r/GUI/Widgets/DropDown.cpp | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e6d740276..a71345e30 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -679,6 +679,7 @@ GLCanvas3D::Mouse::Mouse() , position(DBL_MAX, DBL_MAX) , scene_position(DBL_MAX, DBL_MAX, DBL_MAX) , ignore_left_up(false) + , ignore_right_up(false) { } @@ -4175,6 +4176,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) camera.set_target(camera.get_target() + orig - cur_pos); m_dirty = true; + m_mouse.ignore_right_up = true; } m_mouse.drag.start_position_2D = pos; @@ -4264,7 +4266,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) logical_pos = logical_pos.cwiseQuotient(Vec2d(factor, factor)); #endif // ENABLE_RETINA_GL - if (!m_mouse.dragging) { + if (!m_mouse.ignore_right_up) { //BBS post right click event if (!m_hover_plate_idxs.empty()) { post_event(RBtnPlateEvent(EVT_GLCANVAS_PLATE_RIGHT_CLICK, { logical_pos, m_hover_plate_idxs.front() })); @@ -4928,6 +4930,7 @@ void GLCanvas3D::mouse_up_cleanup() m_mouse.set_start_position_2D_as_invalid(); m_mouse.dragging = false; m_mouse.ignore_left_up = false; + m_mouse.ignore_right_up = false; m_dirty = true; if (m_canvas->HasCapture()) diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 601f801ec..a3628de6d 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -334,6 +334,7 @@ class GLCanvas3D Vec3d scene_position; Drag drag; bool ignore_left_up; + bool ignore_right_up; Mouse(); diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 800e93a58..96f4d6b90 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -6,6 +6,7 @@ BEGIN_EVENT_TABLE(ComboBox, TextInput) EVT_LEFT_DOWN(ComboBox::mouseDown) +EVT_LEFT_DCLICK(ComboBox::mouseDown) //EVT_MOUSEWHEEL(ComboBox::mouseWheelMoved) EVT_KEY_DOWN(ComboBox::keyDown) diff --git a/src/slic3r/GUI/Widgets/DropDown.cpp b/src/slic3r/GUI/Widgets/DropDown.cpp index 5f6afe6fe..4e77b6dc8 100644 --- a/src/slic3r/GUI/Widgets/DropDown.cpp +++ b/src/slic3r/GUI/Widgets/DropDown.cpp @@ -157,7 +157,7 @@ bool DropDown::HasDismissLongTime() { auto now = boost::posix_time::microsec_clock::universal_time(); return !IsShown() && - (now - dismissTime).total_milliseconds() >= 200; + (now - dismissTime).total_milliseconds() >= 20; } void DropDown::paintEvent(wxPaintEvent& evt)