From e563c62094f6cbca5834cf1e4245dceefc755d16 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 29 Mar 2013 18:56:34 +0100 Subject: [PATCH] Replace SetValue with ChangeValue to avoid wxWidgets to fire useless events --- lib/Slic3r/GUI/OptionsGroup.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/Slic3r/GUI/OptionsGroup.pm b/lib/Slic3r/GUI/OptionsGroup.pm index 3cbd52f3..8734ff6f 100644 --- a/lib/Slic3r/GUI/OptionsGroup.pm +++ b/lib/Slic3r/GUI/OptionsGroup.pm @@ -167,12 +167,15 @@ sub _build_field { ? Wx::SpinCtrl->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 2147483647, $opt->{default}) : Wx::TextCtrl->new($self->parent, -1, $opt->{default}, wxDefaultPosition, $size, $style); $field->Disable if $opt->{readonly}; - $self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) }; my $on_change = sub { $self->_on_change($opt_key, $field->GetValue) }; - $opt->{type} eq 'i' - ? EVT_SPINCTRL ($self->parent, $field, $on_change) - : EVT_TEXT ($self->parent, $field, $on_change); + if ($opt->{type} eq 'i') { + $self->_setters->{$opt_key} = sub { $field->SetValue($_[0]) }; + EVT_SPINCTRL ($self->parent, $field, $on_change); + } else { + $self->_setters->{$opt_key} = sub { $field->ChangeValue($_[0]) }; + EVT_TEXT ($self->parent, $field, $on_change); + } $tooltip .= " (default: " . $opt->{default} . ")" if ($opt->{default}); } elsif ($opt->{type} eq 'bool') { $field = Wx::CheckBox->new($self->parent, -1, "");