From f8986d0ef5f1274f36befec411b784d536c8b1b4 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Thu, 13 Nov 2014 00:23:31 +0100 Subject: [PATCH] Restore correct behavior for autoarrange after recent commits --- lib/Slic3r/GUI/Plater.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 12391fffb..0900b782b 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -743,15 +743,26 @@ sub changescale { sub arrange { my $self = shift; + $self->pause_background_process; + my $bb = Slic3r::Geometry::BoundingBoxf->new_from_points($self->{config}->bed_shape); eval { $self->{model}->arrange_objects($self->GetFrame->config->min_object_distance, $bb); - $_->reload_model_instances for @{$self->{print}->objects}; }; # ignore arrange failures on purpose: user has visual feedback and we don't need to warn him # when parts don't fit in print bed $self->update(1); + + my $invalidated = 0; + foreach my $object (@{$self->{print}->objects}) { + $invalidated = 1 if $object->reload_model_instances; + } + if ($invalidated) { + $self->schedule_background_process; + } else { + $self->resume_background_process; + } $self->{canvas}->Refresh; }