X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_mixer.cc;h=071dca9793256608f4cb4631da71e11edbee5961;hb=4ed3dcd51d31a56885ce910c551c60b65905200c;hp=69f60ad3cf03b23b9bf92c08e9792a1210c210db;hpb=adfce3b762fb67f91c98f491e319622dd5f67af8;p=ardour.git diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 69f60ad3cf..071dca9793 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -22,6 +22,7 @@ #endif #include +#include #include #include @@ -75,6 +76,23 @@ Editor::show_editor_mixer (bool yn) show_editor_mixer_when_tracks_arrive = false; + if (yn) { + Glib::RefPtr win = get_window (); + Glib::RefPtr screen; + + if (win) { + screen = win->get_screen(); + } else { + screen = Gdk::Screen::get_default(); + } + + if (g_getenv ("ARDOUR_LOVES_STUPID_TINY_SCREENS") == 0 && screen && screen->get_height() < 700) { + Gtk::MessageDialog msg (_("This screen is not tall enough to display the editor mixer")); + msg.run (); + return; + } + } + if (!_session) { show_editor_mixer_when_tracks_arrive = yn; return; @@ -99,7 +117,7 @@ Editor::show_editor_mixer (bool yn) } } else { - sort_track_selection (); + sort_track_selection (selection->tracks); for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) { RouteTimeAxisView* atv; @@ -115,17 +133,19 @@ Editor::show_editor_mixer (bool yn) if (current_mixer_strip == 0) { create_editor_mixer (); } - - current_mixer_strip->set_route (r); - current_mixer_strip->set_width_enum (editor_mixer_strip_width, (void*) this); } - if (current_mixer_strip->get_parent() == 0) { + if (current_mixer_strip && current_mixer_strip->get_parent() == 0) { global_hpacker.pack_start (*current_mixer_strip, Gtk::PACK_SHRINK ); global_hpacker.reorder_child (*current_mixer_strip, 0); current_mixer_strip->show (); } + if (r) { + current_mixer_strip->set_route (r); + current_mixer_strip->set_width_enum (editor_mixer_strip_width, (void*) this); + } + } else { if (current_mixer_strip) { @@ -146,8 +166,7 @@ void Editor::ensure_all_elements_drawn () { controls_layout.queue_draw (); - ruler_label_event_box.queue_draw (); - time_button_event_box.queue_draw (); + time_bars_event_box.queue_draw (); } #endif @@ -164,6 +183,7 @@ Editor::create_editor_mixer () current_mixer_strip->WidthChanged.connect (sigc::mem_fun(*this, &Editor::ensure_all_elements_drawn)); #endif current_mixer_strip->set_embedded (true); + } void @@ -263,7 +283,7 @@ Editor::track_mixer_selection () void Editor::follow_mixer_selection () { - if (!ARDOUR::Config->get_link_editor_and_mixer_selection() || _following_mixer_selection) { + if (_following_mixer_selection) { return; }