summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_route_list.cc
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-09-17 19:04:16 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-09-17 19:04:16 +0000
commitdca4543c133a0d522b3df86c5f741e66d04e9e6c (patch)
tree91d3ae7d6c9a81b305536c3051026923d8028f30 /gtk2_ardour/editor_route_list.cc
parente6ea8872766fd1246c56302c3cea69de9ea97fe6 (diff)
Fix track height, partial merge of recent 2.0 updates (speed up track resizing, fix disappearing automation controls), rework layers and groups on canvas.
git-svn-id: svn://localhost/ardour2/branches/3.0@3744 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_route_list.cc')
-rw-r--r--gtk2_ardour/editor_route_list.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc
index 64e6660a5a..f2b8456fd9 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -150,10 +150,10 @@ Editor::handle_gui_changes (const string & what, void *src)
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 ();
}
@@ -364,11 +364,14 @@ Editor::redisplay_route_list ()
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;