From bd1d70d8d36dbcf055b521f7ce50b4cfb611e714 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 26 Jun 2018 12:50:04 +0200 Subject: [PATCH] Fixed crash when slicing from Layers tab --- lib/Slic3r/GUI/Plater/2D.pm | 1 - lib/Slic3r/GUI/Plater/3DPreview.pm | 1 + xs/src/slic3r/GUI/GLCanvas3D.cpp | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Slic3r/GUI/Plater/2D.pm b/lib/Slic3r/GUI/Plater/2D.pm index 83c2a5021..88a05c292 100644 --- a/lib/Slic3r/GUI/Plater/2D.pm +++ b/lib/Slic3r/GUI/Plater/2D.pm @@ -233,7 +233,6 @@ sub mouse_event { } elsif ($event->LeftUp) { if ($self->{drag_object}) { $self->{on_instances_moved}->(); - Slic3r::GUI::_3DScene::reset_current_canvas(); } $self->{drag_start_pos} = undef; $self->{drag_object} = undef; diff --git a/lib/Slic3r/GUI/Plater/3DPreview.pm b/lib/Slic3r/GUI/Plater/3DPreview.pm index 9ed2374ec..c7dab869f 100644 --- a/lib/Slic3r/GUI/Plater/3DPreview.pm +++ b/lib/Slic3r/GUI/Plater/3DPreview.pm @@ -279,6 +279,7 @@ sub reload_print { my ($self, $force) = @_; Slic3r::GUI::_3DScene::reset_volumes($self->canvas); + Slic3r::GUI::_3DScene::reset_current_canvas(); $self->_loaded(0); if (! $self->IsShown && ! $force) { diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/xs/src/slic3r/GUI/GLCanvas3D.cpp index f5db97731..2148579e8 100644 --- a/xs/src/slic3r/GUI/GLCanvas3D.cpp +++ b/xs/src/slic3r/GUI/GLCanvas3D.cpp @@ -2376,7 +2376,7 @@ void GLCanvas3D::load_gcode_preview(const GCodePreviewData& preview_data, const if ((m_canvas != nullptr) && (m_print != nullptr)) { // ensures that this canvas is current - if (!_3DScene::set_current(m_canvas, false)) + if (!_3DScene::set_current(m_canvas, true)) return; if (m_volumes.empty())