diff options
author | David Robillard <d@drobilla.net> | 2006-10-10 00:42:00 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-10-10 00:42:00 +0000 |
commit | 082c4570a1efbf59794a79820a96dd88de23c73b (patch) | |
tree | 3166cb84a51fb21649d3cc2ea5fec2c48328012b | |
parent | c8f9f3eee8ce989b09e545b1b1bf9132b686ce25 (diff) |
Fix for segfault on autoscroll (especially when dragging regions).
git-svn-id: svn://localhost/ardour2/trunk@967 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 5 |
3 files changed, 6 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index fb0d0782dc..ecf3870c7f 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -248,6 +248,7 @@ Editor::Editor (AudioEngine& eng) bbt_beat_subdivision = 4; canvas_width = 0; canvas_height = 0; + autoscroll_active = false; autoscroll_timeout_tag = -1; interthread_progress_window = 0; diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a8c12b4d81..c83a0da3a0 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1498,6 +1498,7 @@ class Editor : public PublicEditor /* autoscrolling */ + bool autoscroll_active; int autoscroll_timeout_tag; int autoscroll_direction; uint32_t autoscroll_cnt; diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index 3ff52499c8..6f57a51010 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -630,12 +630,13 @@ Editor::autoscroll_canvas () void Editor::start_canvas_autoscroll (int dir) { - if (!session) { + if (!session || autoscroll_active) { return; } stop_canvas_autoscroll (); + autoscroll_active = true; autoscroll_direction = dir; autoscroll_distance = (nframes_t) floor (current_page_frames()/50.0); autoscroll_cnt = 0; @@ -652,6 +653,8 @@ Editor::stop_canvas_autoscroll () g_source_remove (autoscroll_timeout_tag); autoscroll_timeout_tag = -1; } + + autoscroll_active = false; } gint |