summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_route_list.cc
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-09-14 10:08:57 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-09-14 10:08:57 +0000
commitf1ef1b0069d7fb75a4ec0391823b0230dcb2abfe (patch)
tree0635683f9c56e7f04bb09ac014d9e370c3346bd2 /gtk2_ardour/editor_route_list.cc
parent4489fc159f522eb3f9b9bdf668df853d54ed4782 (diff)
Speed up track resizing, fix disappearing automation controls when automation track has been made minimum size.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3722 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 473858f8f5..726be7f60a 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -104,10 +104,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 ();
}
@@ -313,11 +313,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;