diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 2d10cd50e..d8f8f2f89 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -506,7 +506,8 @@ void Preview::update_layers_slider_from_canvas(wxKeyEvent &event) IMSlider *m_layers_slider = m_canvas->get_gcode_viewer().get_layers_slider(); IMSlider *m_moves_slider = m_canvas->get_gcode_viewer().get_moves_slider(); if (key == 'L') { - m_layers_slider->switch_one_layer_mode(); + if(!m_layers_slider->switch_one_layer_mode()) + event.Skip(); m_canvas->set_as_dirty(); } /*else if (key == WXK_SHIFT) diff --git a/src/slic3r/GUI/IMSlider.cpp b/src/slic3r/GUI/IMSlider.cpp index d83c08297..12a1ee18d 100644 --- a/src/slic3r/GUI/IMSlider.cpp +++ b/src/slic3r/GUI/IMSlider.cpp @@ -705,8 +705,11 @@ bool IMSlider::check_ticks_changed_event(Type type) // switch on/off one layer mode -void IMSlider::switch_one_layer_mode() +bool IMSlider::switch_one_layer_mode() { + if (m_show_custom_gcode_window) + return false; + m_is_one_layer = !m_is_one_layer; if (!m_is_one_layer) { SetLowerValue(m_min_value); @@ -715,6 +718,7 @@ void IMSlider::switch_one_layer_mode() m_selection == ssLower ? correct_lower_value() : correct_higher_value(); if (m_selection == ssUndef) m_selection = ssHigher; set_as_dirty(); + return true; } void IMSlider::draw_background(const ImRect& groove) { diff --git a/src/slic3r/GUI/IMSlider.hpp b/src/slic3r/GUI/IMSlider.hpp index 59d2e2e45..5b6e7ce98 100644 --- a/src/slic3r/GUI/IMSlider.hpp +++ b/src/slic3r/GUI/IMSlider.hpp @@ -265,7 +265,7 @@ public: void add_code_as_tick(Type type, int selected_extruder = -1); void post_ticks_changed_event(Type type = Custom); bool check_ticks_changed_event(Type type); - void switch_one_layer_mode(); + bool switch_one_layer_mode(); bool render(int canvas_width, int canvas_height);