summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-10-10 00:42:00 +0000
committerDavid Robillard <d@drobilla.net>2006-10-10 00:42:00 +0000
commit082c4570a1efbf59794a79820a96dd88de23c73b (patch)
tree3166cb84a51fb21649d3cc2ea5fec2c48328012b
parentc8f9f3eee8ce989b09e545b1b1bf9132b686ce25 (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.cc1
-rw-r--r--gtk2_ardour/editor.h1
-rw-r--r--gtk2_ardour/editor_canvas.cc5
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