+ if (this ==_entered_mixer_strip)
+ _entered_mixer_strip = NULL;
+}
+
+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
+ deselect_all_processors();
+
+ return false;
+}
+
+bool
+MixerStrip::mixer_strip_leave_event (GdkEventCrossing *ev)
+{
+ //if we have moved outside our strip, but not into a child view, then deselect ourselves
+ if ( !(ev->detail == GDK_NOTIFY_INFERIOR) ) {
+ _entered_mixer_strip= 0;
+
+ //clear keyboard focus in the gain display. this is cheesy but fixes a longstanding "bug" where the user starts typing in the gain entry, and leaves it active, thereby prohibiting other keybindings from working
+ gpm.gain_display.set_sensitive(false);
+ gpm.show_gain();
+ 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;