#else
row = *(route_display_model->append ());
#endif
+
+ // cerr << route->name() << " marked for display ? " << tv->marked_for_display() << endl;
row[route_display_columns.text] = route->name();
row[route_display_columns.visible] = tv->marked_for_display();
row[route_display_columns.tv] = tv;
row[route_display_columns.route] = route;
-
+
track_views.push_back (tv);
ignore_route_list_reorder = true;
if (show_editor_mixer_when_tracks_arrive) {
show_editor_mixer (true);
}
-
- editor_mixer_button.set_sensitive(true);
editor_list_button.set_sensitive(true);
}
ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::handle_gui_changes), what, src));
if (what == "track_height") {
- /* make tracks change height while it happens, instead
+ /* Optional :make tracks change height while it happens, instead
of on first-idle
*/
- track_canvas->update_now ();
+ //track_canvas->update_now ();
redisplay_route_list ();
}
* button to inactive and untick the menu option
*/
- editor_mixer_button.set_active(false);
ActionManager::uncheck_toggleaction ("<Actions>/Editor/show-editor-mixer");
-
- /* and disable if all tracks and/or routes are gone */
-
- if (track_views.size() == 0) {
- editor_mixer_button.set_sensitive(false);
- }
}
void
for (i = rows.begin(); i != rows.end(); ++i) {
TimeAxisView *tv = (*i)[route_display_columns.tv];
(*i)[route_display_columns.visible] = tv->marked_for_display ();
+ cerr << "marked " << tv->name() << " for display = " << tv->marked_for_display() << endl;
}
no_route_list_redisplay = false;
uint32_t position;
uint32_t order;
int n;
-
+
if (no_route_list_redisplay) {
return;
}
if (visible) {
tv->set_marked_for_display (true);
position += tv->show_at (position, n, &edit_controls_vbox);
+ tv->clip_to_viewport ();
} else {
tv->hide ();
}
full_canvas_height = position;
- /* make sure the cursors stay on top of every newly added track */
-
- cursor_group->raise_to_top ();
-
- //reset_scrolling_region ();
+ vertical_adjustment.set_upper (position + canvas_timebars_vsize);
+ if ((vertical_adjustment.get_value() + canvas_height) > vertical_adjustment.get_upper()) {
+ /*
+ We're increasing the size of the canvas while the bottom is visible.
+ We scroll down to keep in step with the controls layout.
+ */
+ vertical_adjustment.set_value (position + canvas_timebars_vsize - canvas_height);
+ }
if (Config->get_sync_all_route_ordering() && !ignore_route_list_reorder) {
ignore_route_order_sync = true;
void
Editor::build_route_list_menu ()
{
- using namespace Menu_Helpers;
+ using namespace Menu_Helpers;
using namespace Gtk;
route_list_menu = new Menu;
void
Editor::set_all_tracks_visibility (bool yn)
{
- TreeModel::Children rows = route_display_model->children();
+ TreeModel::Children rows = route_display_model->children();
TreeModel::Children::iterator i;
no_route_list_redisplay = true;
void
Editor::set_all_audio_visibility (int tracks, bool yn)
{
- TreeModel::Children rows = route_display_model->children();
+ TreeModel::Children rows = route_display_model->children();
TreeModel::Children::iterator i;
no_route_list_redisplay = true;