From aae8252341fe001de6d175142876eac1cdb0f629 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 30 May 2021 18:54:00 +0200 Subject: [PATCH] Fix engine-dialog MIDI Dropdown issue Sensitivity is managed by EngineControl::update_sensitivity, prior settings in update_midi_options() were ignored. This also fixes the layout (MIDI dropdown width) and midi-option value when changing backends. --- gtk2_ardour/engine_dialog.cc | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index a5dbf1146e..aca6f34f9b 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -689,7 +689,7 @@ EngineControl::build_full_control_notebook () label = manage (left_aligned_label (_("MIDI System:"))); basic_packer.attach (*label, 0, 1, row, row + 1, xopt, (AttachOptions) 0); - basic_packer.attach (midi_option_combo, 1, 2, row, row + 1, SHRINK, (AttachOptions) 0); + basic_packer.attach (midi_option_combo, 1, 2, row, row + 1, xopt, (AttachOptions) 0); basic_packer.attach (midi_devices_button, 3, 4, row, row+1, xopt, xopt); row++; @@ -1154,18 +1154,9 @@ EngineControl::update_midi_options () boost::shared_ptr backend = ARDOUR::AudioEngine::instance()->current_backend(); vector midi_options = backend->enumerate_midi_options(); - if (midi_options.size() == 1) { - /* only contains the "none" option */ + if (midi_options.size() == 1 || _have_control) { set_popdown_strings (midi_option_combo, midi_options); - midi_option_combo.set_sensitive (false); - } else { - if (_have_control) { - set_popdown_strings (midi_option_combo, midi_options); - midi_option_combo.set_active_text (midi_options.front()); - midi_option_combo.set_sensitive (true); - } else { - midi_option_combo.set_sensitive (false); - } + midi_option_combo.set_active_text (midi_options.front()); } } @@ -2353,9 +2344,9 @@ EngineControl::set_current_state (const State& state) } set_active_text_if_present (buffer_size_combo, bufsize_as_string (state->buffer_size)); set_active_text_if_present (nperiods_combo, to_string (state->n_periods)); + set_active_text_if_present (midi_option_combo, state->midi_option); input_latency.set_value (state->input_latency); output_latency.set_value (state->output_latency); - midi_option_combo.set_active_text (state->midi_option); use_buffered_io_button.set_active (state->use_buffered_io); return true;