From 082c4570a1efbf59794a79820a96dd88de23c73b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 10 Oct 2006 00:42:00 +0000 Subject: Fix for segfault on autoscroll (especially when dragging regions). git-svn-id: svn://localhost/ardour2/trunk@967 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor.cc | 1 + gtk2_ardour/editor.h | 1 + gtk2_ardour/editor_canvas.cc | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3