diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-10-16 11:11:21 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-10-16 11:11:21 +0000 |
commit | 75c60c9b8b708eaed036c50e7cfb08e5d4ae3b9f (patch) | |
tree | 8b7f3aa3100ee14283d058ede5b340762f99b4b4 /gtk2_ardour | |
parent | 949c6e15c299d91407b2dc645b4b454d7dc6e822 (diff) |
fix crash at startup caused by use of null session ptr to set end marker
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3974 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index aaf478713f..8e8222f061 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1115,6 +1115,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); @@ -1122,6 +1126,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 (); } @@ -1272,6 +1277,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 dd5050d16e..7b1eca282f 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -325,8 +325,8 @@ Editor::track_canvas_size_allocated () vertical_adjustment.set_page_size (canvas_height); } - 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); |