summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc41
1 files changed, 23 insertions, 18 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 2c3babb9c8..d0664b09ad 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -313,10 +313,8 @@ Editor::Editor ()
bbt_beat_subdivision = 4;
_visible_canvas_width = 0;
_visible_canvas_height = 0;
- last_autoscroll_x = 0;
- last_autoscroll_y = 0;
- autoscroll_active = false;
- autoscroll_timeout_tag = -1;
+ autoscroll_horizontal_allowed = false;
+ autoscroll_vertical_allowed = false;
logo_item = 0;
analysis_window = 0;
@@ -4291,35 +4289,45 @@ Editor::idle_visual_changer ()
pending_visual_change.idle_handler_id = -1;
pending_visual_change.being_handled = true;
- VisualChange::Type p = pending_visual_change.pending;
+ VisualChange vc = pending_visual_change;
+
pending_visual_change.pending = (VisualChange::Type) 0;
- double const last_time_origin = horizontal_position ();
+ visual_changer (vc);
+ pending_visual_change.being_handled = false;
- if (p & VisualChange::ZoomLevel) {
- set_samples_per_pixel (pending_visual_change.samples_per_pixel);
+ return 0; /* this is always a one-shot call */
+}
+
+void
+Editor::visual_changer (const VisualChange& vc)
+{
+ double const last_time_origin = horizontal_position ();
+
+ if (vc.pending & VisualChange::ZoomLevel) {
+ set_samples_per_pixel (vc.samples_per_pixel);
compute_fixed_ruler_scale ();
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
- compute_current_bbt_points (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_samples(),
+ compute_current_bbt_points (vc.time_origin, pending_visual_change.time_origin + current_page_samples(),
current_bbt_points_begin, current_bbt_points_end);
- compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_samples(),
+ compute_bbt_ruler_scale (vc.time_origin, pending_visual_change.time_origin + current_page_samples(),
current_bbt_points_begin, current_bbt_points_end);
update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end);
update_video_timeline();
}
- if (p & VisualChange::TimeOrigin) {
- set_horizontal_position (pending_visual_change.time_origin / samples_per_pixel);
+ if (vc.pending & VisualChange::TimeOrigin) {
+ set_horizontal_position (vc.time_origin / samples_per_pixel);
}
- if (p & VisualChange::YOrigin) {
- vertical_adjustment.set_value (pending_visual_change.y_origin);
+ if (vc.pending & VisualChange::YOrigin) {
+ vertical_adjustment.set_value (vc.y_origin);
}
if (last_time_origin == horizontal_position ()) {
@@ -4328,14 +4336,11 @@ Editor::idle_visual_changer ()
redisplay_tempo (true);
}
- if (!(p & VisualChange::ZoomLevel)) {
+ if (!(vc.pending & VisualChange::ZoomLevel)) {
update_video_timeline();
}
_summary->set_overlays_dirty ();
-
- pending_visual_change.being_handled = false;
- return 0; /* this is always a one-shot call */
}
struct EditorOrderTimeAxisSorter {