13
0

ignore state-changes during [meter] context-menu popup (gtkmm bug?)

This commit is contained in:
Robin Gareus 2013-07-07 19:04:07 +02:00
parent 09243a326a
commit 5dae93e5ea
5 changed files with 13 additions and 2 deletions

View File

@ -452,10 +452,12 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
_suspend_menu_callbacks = true;
add_level_meter_item (items, group, _("Peak"), MeterPeak);
add_level_meter_item (items, group, _("RMS"), MeterKrms);
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;
}
void
@ -471,8 +473,8 @@ MeterStrip::add_level_meter_item (Menu_Helpers::MenuList& items, RadioMenuItem::
void
MeterStrip::set_meter_type (MeterType m)
{
if (_suspend_menu_callbacks) return;
level_meter->set_type (m);
//_route->set_meter_type(m);
}
void

View File

@ -116,6 +116,7 @@ class MeterStrip : public Gtk::VBox, public RouteUI
void parameter_changed (std::string const & p);
void redraw_metrics ();
bool _suspend_menu_callbacks;
bool level_meter_button_press (GdkEventButton* ev);
void popup_level_meter_menu (GdkEventButton* ev);
void add_level_meter_item (Gtk::Menu_Helpers::MenuList& items, Gtk::RadioMenuItem::Group& group, std::string const & name, ARDOUR::MeterType mode);

View File

@ -2125,6 +2125,7 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
_suspend_menu_callbacks = true;
add_level_meter_item_point (items, group, _("Input"), MeterInput);
add_level_meter_item_point (items, group, _("Pre-fader"), MeterPreFader);
add_level_meter_item_point (items, group, _("Post-fader"), MeterPostFader);
@ -2138,6 +2139,7 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
add_level_meter_item_type (items, tgroup, _("RMS"), MeterKrms);
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;
}
void
@ -2154,6 +2156,7 @@ MixerStrip::add_level_meter_item_point (Menu_Helpers::MenuList& items,
void
MixerStrip::set_meter_point (MeterPoint p)
{
if (_suspend_menu_callbacks) return;
_route->set_meter_point (p);
}
@ -2171,6 +2174,6 @@ MixerStrip::add_level_meter_item_type (Menu_Helpers::MenuList& items,
void
MixerStrip::set_meter_type (MeterType t)
{
//_route->set_meter_type (t);
if (_suspend_menu_callbacks) return;
gpm.set_type (t);
}

View File

@ -308,6 +308,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
void add_input_port (ARDOUR::DataType);
void add_output_port (ARDOUR::DataType);
bool _suspend_menu_callbacks;
bool level_meter_button_press (GdkEventButton *);
void popup_level_meter_menu (GdkEventButton *);
void add_level_meter_item_point (Gtk::Menu_Helpers::MenuList &, Gtk::RadioMenuItem::Group &, std::string const &, ARDOUR::MeterPoint);

View File

@ -307,6 +307,10 @@ PeakMeter::meter_level(uint32_t n, MeterType type) {
void
PeakMeter::set_type(MeterType t)
{
if (t == _meter_type) {
return;
}
_meter_type = t;
if (t & MeterKrms) {