summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-10-16 11:16:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-10-16 11:16:41 +0000
commit3d47c31d8f8b6107d5479442d6d2bb60ab00dadd (patch)
tree8eef60abab1f69566874390fefae62408c903724 /gtk2_ardour
parent1bca6b5c74064b9e8a6f70b45fb1c04a95534d30 (diff)
fix crash at startup caused by use of null session ptr to set end marker (from 2.0)
git-svn-id: svn://localhost/ardour2/branches/3.0@3975 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.cc6
-rw-r--r--gtk2_ardour/editor_canvas.cc4
2 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 9d1938c2d2..7b5685858d 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -1169,6 +1169,10 @@ Editor::center_screen_internal (nframes64_t frame, float page)
void
Editor::handle_new_duration ()
{
+ if (!session) {
+ return;
+ }
+
ENSURE_GUI_THREAD (mem_fun (*this, &Editor::handle_new_duration));
nframes64_t new_end = session->get_maximum_extent() + (nframes64_t) floorf (current_page_frames() * 0.10f);
@@ -1176,6 +1180,7 @@ Editor::handle_new_duration ()
if (new_end > last_canvas_frame) {
last_canvas_frame = new_end;
horizontal_adjustment.set_upper (last_canvas_frame / frames_per_unit);
+ horizontal_adjustment.set_page_size (current_page_frames()/frames_per_unit);
//reset_scrolling_region ();
}
@@ -1324,6 +1329,7 @@ Editor::connect_to_session (Session *t)
sfbrowser->set_session (session);
}
+ last_canvas_frame = 0; // force update in handle_new_duration()
handle_new_duration ();
redisplay_regions ();
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index b1f7f376fb..a1930e58d7 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -342,8 +342,8 @@ Editor::track_canvas_size_allocated ()
}
}
- horizontal_adjustment.set_upper (session->current_end_frame()/frames_per_unit);
- horizontal_adjustment.set_page_size (current_page_frames()/frames_per_unit);
+
+ handle_new_duration ();
reset_hscrollbar_stepping ();
update_fixed_rulers();
redisplay_tempo (false);