diff --git a/libs/surfaces/mackie/gui.cc b/libs/surfaces/mackie/gui.cc index 15be6394ef..708fc5328c 100644 --- a/libs/surfaces/mackie/gui.cc +++ b/libs/surfaces/mackie/gui.cc @@ -94,6 +94,7 @@ MackieControlProtocolGUI::MackieControlProtocolGUI (MackieControlProtocol& p) , ipmidi_base_port_adjustment (_cp.ipmidi_base(), 0, 32767, 1, 1000) , discover_button (_("Discover Mackie Devices")) , _device_dependent_widget (0) + , _ignore_profile_changed (false) , ignore_active_change (false) { Gtk::Label* l; @@ -805,6 +806,10 @@ MackieControlProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib _cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, i->second); } + _ignore_profile_changed = true; + _profile_combo.set_active_text ( _cp.device_profile().name() ); + _ignore_profile_changed = false; + } else { std::cerr << "no such action\n"; } @@ -834,11 +839,13 @@ MackieControlProtocolGUI::device_changed () void MackieControlProtocolGUI::profile_combo_changed () { - string profile = _profile_combo.get_active_text(); + if (!_ignore_profile_changed) { + string profile = _profile_combo.get_active_text(); - _cp.set_profile (profile); + _cp.set_profile (profile); - refresh_function_key_editor (); + refresh_function_key_editor (); + } } void diff --git a/libs/surfaces/mackie/gui.h b/libs/surfaces/mackie/gui.h index 15d266634c..0f91a32e12 100644 --- a/libs/surfaces/mackie/gui.h +++ b/libs/surfaces/mackie/gui.h @@ -151,6 +151,7 @@ class MackieControlProtocolGUI : public Gtk::Notebook void connection_handler (); Glib::RefPtr build_midi_port_list (std::vector const & ports, bool for_input); + bool _ignore_profile_changed; bool ignore_active_change; void active_port_changed (Gtk::ComboBox* combo, boost::weak_ptr ws, bool for_input); };