+EditorRoutes::hide_all_miditracks ()
+{
+ set_all_audio_midi_visibility (3, false);
+}
+
+bool
+EditorRoutes::key_press (GdkEventKey* ev)
+{
+ TreeViewColumn *col;
+ boost::shared_ptr<RouteList> rl (new RouteList);
+ TreePath path;
+
+ switch (ev->keyval) {
+ case GDK_Tab:
+ case GDK_ISO_Left_Tab:
+
+ /* If we appear to be editing something, leave that cleanly and appropriately.
+ */
+ if (name_editable) {
+ name_editable->editing_done ();
+ name_editable = 0;
+ }
+
+ col = _display.get_column (_name_column); // select&focus on name column
+
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
+ treeview_select_previous (_display, _model, col);
+ } else {
+ treeview_select_next (_display, _model, col);
+ }
+
+ return true;
+ break;
+
+ case 'm':
+ if (get_relevant_routes (rl)) {
+ _session->set_mute (rl, !rl->front()->muted(), Session::rt_cleanup);
+ }
+ return true;
+ break;
+
+ case 's':
+ if (get_relevant_routes (rl)) {
+ if (Config->get_solo_control_is_listen_control()) {
+ _session->set_listen (rl, !rl->front()->listening_via_monitor(), Session::rt_cleanup);
+ } else {
+ _session->set_solo (rl, !rl->front()->self_soloed(), Session::rt_cleanup);
+ }
+ }
+ return true;
+ break;
+
+ case 'r':
+ if (get_relevant_routes (rl)) {
+ _session->set_record_enabled (rl, !rl->front()->record_enabled(), Session::rt_cleanup);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return false;
+}
+
+bool
+EditorRoutes::get_relevant_routes (boost::shared_ptr<RouteList> rl)