From 09d7d9b034cd3fdf71e6bc76e9cac764e1df0832 Mon Sep 17 00:00:00 2001 From: "Y. Sapir" Date: Sun, 30 Mar 2014 00:21:57 +0300 Subject: [PATCH 1/2] Remove call to on_presets_changed from Tab Page's on_change. (set_dirty is called which handles it anyway.) --- lib/Slic3r/GUI/Tab.pm | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm index 2fdf93559..7a3c1f2c4 100644 --- a/lib/Slic3r/GUI/Tab.pm +++ b/lib/Slic3r/GUI/Tab.pm @@ -268,7 +268,6 @@ sub add_options_page { my $page = Slic3r::GUI::Tab::Page->new($self, $title, $self->{iconcount}, %params, on_change => sub { $self->on_value_change(@_); $self->set_dirty(1); - $self->on_presets_changed; }); $page->Hide; $self->{sizer}->Add($page, 1, wxEXPAND | wxLEFT, 5); From 576d02a20debc05fdfa880fe51871a2bffa9f589 Mon Sep 17 00:00:00 2001 From: "Y. Sapir" Date: Sun, 30 Mar 2014 00:23:35 +0300 Subject: [PATCH 2/2] Make set_dirty ignore changes that don't do anything. --- lib/Slic3r/GUI/Tab.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm index 7a3c1f2c4..756cd03df 100644 --- a/lib/Slic3r/GUI/Tab.pm +++ b/lib/Slic3r/GUI/Tab.pm @@ -311,6 +311,9 @@ sub update_tree { sub set_dirty { my $self = shift; my ($dirty) = @_; + + return if $dirty and $self->is_dirty; + return if (not $dirty) and (not $self->is_dirty); my $selection = $self->{presets_choice}->GetSelection; my $i = $self->{dirty} // $selection; #/