summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r--gtk2_ardour/mixer_strip.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index f40a65e123..4181626cf0 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -186,7 +186,7 @@ MixerStrip::init ()
meter_point_button.signal_button_press_event().connect (sigc::mem_fun (gpm, &GainMeter::meter_press), false);
meter_point_button.signal_button_release_event().connect (sigc::mem_fun (gpm, &GainMeter::meter_release), false);
-
+
hide_button.set_events (hide_button.get_events() & ~(Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK));
monitor_input_button->set_diameter (3);
@@ -420,6 +420,11 @@ bool
MixerStrip::mixer_strip_enter_event (GdkEventCrossing *ev)
{
_entered_mixer_strip = this;
+
+ //although we are triggering on the "enter", to the user it will appear that it is happenin on the "leave"
+ //because the mixerstrip control is a parent that encompasses the strip
+ ARDOUR_UI::instance()->the_mixer()->deselect_all_strip_processors();
+
return false;
}
@@ -433,6 +438,9 @@ MixerStrip::mixer_strip_leave_event (GdkEventCrossing *ev)
//clear keyboard focus in the gain display. this is cheesy but fixes a longstanding bug.
gpm.gain_display.set_sensitive(false);
gpm.gain_display.set_sensitive(true);
+
+ //if we leave this mixer strip we need to clear out any selections
+ //processor_box.processor_display.select_none(); //but this doesn't work, because it gets triggered when (for example) you open the menu or start a drag
}
return false;
@@ -1645,6 +1653,8 @@ MixerStrip::set_selected (bool yn)
}
global_frame.queue_draw ();
+// if (!yn)
+// processor_box.deselect_all_processors();
}
void
@@ -2219,6 +2229,12 @@ MixerStrip::select_all_processors ()
processor_box.processor_operation (ProcessorBox::ProcessorsSelectAll);
}
+void
+MixerStrip::deselect_all_processors ()
+{
+ processor_box.processor_operation (ProcessorBox::ProcessorsSelectNone);
+}
+
bool
MixerStrip::delete_processors ()
{