diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-09 17:10:58 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-09 17:10:58 -0400 |
commit | 3633892eaa294b11ae09a9e85fcfdf7349bcd213 (patch) | |
tree | 8245aa4fcdbe1229cd6bc076225cbc08251dbae9 /gtk2_ardour | |
parent | f06bab1fa3094013ea5c13fc8aa229bf9701b7da (diff) |
fix crash when unconditionally using null env var; tweak packing of control app button
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/engine_dialog.h | 1 |
2 files changed, 16 insertions, 10 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 989f2802c3..cbda83c347 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -71,12 +71,6 @@ EngineControl::EngineControl () get_vbox()->set_border_width (12); get_vbox()->pack_start (notebook); - Gtk::HBox* hpacker = manage (new HBox); - hpacker->pack_start (control_app_button, false, false); - hpacker->show (); - control_app_button.show(); - get_vbox()->pack_start (*hpacker); - control_app_button.signal_clicked().connect (mem_fun (*this, &EngineControl::control_app_button_clicked)); manage_control_app_sensitivity (); @@ -201,10 +195,18 @@ EngineControl::build_notebook () device_combo.signal_changed().connect (sigc::mem_fun (*this, &EngineControl::device_changed)); basic_hbox.pack_start (basic_packer, false, false); + basic_vbox.pack_start (basic_hbox, false, false); + + Gtk::HBox* hpacker = manage (new HBox); + hpacker->set_border_width (12); + hpacker->pack_start (control_app_button, false, false); + hpacker->show (); + control_app_button.show(); + basic_vbox.pack_start (*hpacker); midi_packer.set_border_width (12); - notebook.pages().push_back (TabElem (basic_hbox, _("Audio"))); + notebook.pages().push_back (TabElem (basic_vbox, _("Audio"))); notebook.pages().push_back (TabElem (midi_hbox, _("MIDI"))); notebook.set_border_width (12); @@ -815,9 +817,10 @@ EngineControl::control_app_button_clicked () void EngineControl::manage_control_app_sensitivity () { - const string appname = g_getenv ("ARDOUR_DEVICE_CONTROL_APP"); - - if (appname.empty()) { + const char* env_value = g_getenv ("ARDOUR_DEVICE_CONTROL_APP"); + string appname; + + if (!env_value) { boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); if (!backend) { @@ -825,6 +828,8 @@ EngineControl::manage_control_app_sensitivity () } string appname = backend->control_app_name(); + } else { + appname = env_value; } if (appname.empty()) { diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index 97d41995fa..8f5a615228 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -94,6 +94,7 @@ class EngineControl : public ArdourDialog { Gtk::Table basic_packer; Gtk::Table midi_packer; Gtk::HBox basic_hbox; + Gtk::VBox basic_vbox; Gtk::HBox midi_hbox; sigc::connection sr_connection; |