diff --git a/src/slic3r/GUI/DoubleSliderForLayers.cpp b/src/slic3r/GUI/DoubleSliderForLayers.cpp index d9c3bde007..5fe73d3e77 100644 --- a/src/slic3r/GUI/DoubleSliderForLayers.cpp +++ b/src/slic3r/GUI/DoubleSliderForLayers.cpp @@ -647,6 +647,8 @@ void DSForLayers::Render(const int canvas_width, const int canvas_height, float // discard all getters dialogs m_show_get_jump_value = false; } + else if (m_ctrl.IsLClickOnThumb()) + add_code_as_tick(ColorChange); // draw action buttons diff --git a/src/slic3r/GUI/ImGuiDoubleSlider.cpp b/src/slic3r/GUI/ImGuiDoubleSlider.cpp index cae765852f..34bdb35ce2 100644 --- a/src/slic3r/GUI/ImGuiDoubleSlider.cpp +++ b/src/slic3r/GUI/ImGuiDoubleSlider.cpp @@ -515,6 +515,19 @@ bool ImGuiControl::draw_slider( int* higher_pos, int* lower_pos, context.IO.MouseClicked[0]) m_rclick_on_selected_thumb = false; + // detect left click on selected thumb + if (ImGui::ItemHoverable(active_thumb, id) && !pos_changed) { + ImVec2 active_thumb_center = active_thumb.GetCenter(); + if (context.IO.MouseClicked[0]) + m_active_thumb_center_on_lcklick = active_thumb_center; + if (context.IO.MouseReleased[0] && + (m_active_thumb_center_on_lcklick.y == active_thumb_center.y) && + (m_active_thumb_center_on_lcklick.x == active_thumb_center.x) ) + m_lclick_on_selected_thumb = true; + } + else + m_lclick_on_selected_thumb = false; + // render slider ImVec2 higher_thumb_center = m_regions.higher_thumb.GetCenter(); diff --git a/src/slic3r/GUI/ImGuiDoubleSlider.hpp b/src/slic3r/GUI/ImGuiDoubleSlider.hpp index 8530f08188..9c0096f9b9 100644 --- a/src/slic3r/GUI/ImGuiDoubleSlider.hpp +++ b/src/slic3r/GUI/ImGuiDoubleSlider.hpp @@ -84,6 +84,7 @@ public: ImRect GetActiveThumbRect() const; bool IsRClickOnThumb() const { return m_rclick_on_selected_thumb; } + bool IsLClickOnThumb() const { return m_lclick_on_selected_thumb; } bool is_horizontal() const { return !(m_flags & ImGuiSliderFlags_Vertical); } bool render(); @@ -138,6 +139,8 @@ private: int m_mouse_pos; bool m_rclick_on_selected_thumb{ false }; + bool m_lclick_on_selected_thumb{ false }; + ImVec2 m_active_thumb_center_on_lcklick; bool m_draw_lower_thumb{ true }; bool m_combine_thumbs { false };