diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm index 67b9b354e..9eec4d625 100644 --- a/lib/Slic3r/GUI/MainFrame.pm +++ b/lib/Slic3r/GUI/MainFrame.pm @@ -197,6 +197,7 @@ sub _init_menubar { $plater->export_amf; }, undef, 'brick_go.png'); $self->{object_menu} = $self->{plater}->object_menu; + $self->on_plater_object_list_changed(0); $self->on_plater_selection_changed(0); } @@ -312,6 +313,14 @@ sub is_loaded { return $self->{loaded}; } +sub on_plater_object_list_changed { + my ($self, $have_objects) = @_; + + return if !defined $self->{plater_menu}; + $self->{plater_menu}->Enable($_->GetId, $have_objects) + for $self->{plater_menu}->GetMenuItems; +} + sub on_plater_selection_changed { my ($self, $have_selection) = @_; diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index f1cf65484..a693ad47b 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -2169,6 +2169,9 @@ sub object_list_changed { $self->{htoolbar}->EnableTool($_, $have_objects) for (TB_RESET, TB_ARRANGE); } + + # prepagate the event to the frame (a custom Wx event would be cleaner) + $self->GetFrame->on_plater_object_list_changed($have_objects); } sub selection_changed {