diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 4f578728a2..03d8162163 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -267,6 +267,12 @@ void PresetComboBox::set_label_marker(int item) this->SetClientData(item, (void*)LABEL_ITEM_MARKER); } +void PresetComboBox::check_selection() +{ + if (this->last_selected != GetSelection()) + this->last_selected = GetSelection(); +} + // Frequently changed parameters class FreqChangedParams : public OG_Settings @@ -641,7 +647,10 @@ void Sidebar::update_presets(Preset::Type preset_type) preset_bundle.sla_materials.update_platter_ui(p->combo_sla_material); } // Update the printer choosers, update the dirty flags. + auto prev_selection = p->combo_printer->GetSelection(); preset_bundle.printers.update_platter_ui(p->combo_printer); + if (prev_selection != p->combo_printer->GetSelection()) + p->combo_printer->check_selection(); // Update the filament choosers to only contain the compatible presets, update the color preview, // update the dirty flags. if (p->plater->printer_technology() == ptFFF) { diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 31f209b4c0..96925b0f7a 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -44,6 +44,7 @@ public: void set_label_marker(int item); void set_extruder_idx(const int extr_idx) { extruder_idx = extr_idx; } int get_extruder_idx() const { return extruder_idx; } + void check_selection(); private: typedef std::size_t Marker;