From 4e58e9b7d297976ec9649c9c166f8a9560e41a4d Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 3 Mar 2025 17:20:58 +0100 Subject: [PATCH] Fix duplicate Editor Piano roll This fixes a crash when switching snapshots, part one --- gtk2_ardour/editor.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 72e4deab0b..9c9c4e6161 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -223,6 +223,7 @@ Editor::Editor () , editor_mixer_strip_width (Wide) , constructed (false) , _properties_box (0) + , _pianoroll (0) , no_save_visual (false) , marker_click_behavior (MarkerClickSelectOnly) , _join_object_range_state (JOIN_OBJECT_RANGE_NONE) @@ -1216,9 +1217,12 @@ Editor::set_session (Session *t) _properties_box->set_session (_session); /* Cannot initialize in constructor, because pianoroll needs Actions */ - _pianoroll = new Pianoroll ("editor pianroll"); + if (!_pianoroll) { + // XXX this should really not happen here + _pianoroll = new Pianoroll ("editor pianroll"); + _pianoroll->viewport().set_size_request (600, 120); + } _pianoroll->set_session (_session); - _pianoroll->viewport().set_size_request (600, 120); _bottom_hbox.pack_start(*_properties_box, true, true); _bottom_hbox.pack_start(_pianoroll->contents(), true, true);