summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_tempodisplay.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-04-20 16:11:30 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-04-20 16:11:40 -0400
commitf88cfdb47802241c306273d98f31538d44e6781a (patch)
treee18e093ad1cd1dd15a175dd6a41c925ec544c9bc /gtk2_ardour/editor_tempodisplay.cc
parent05905d3ec83cf0b780f19dce058288b3a423e336 (diff)
remove Editor::redraw_measures to improve efficiency of tempo measure line redraws
Diffstat (limited to 'gtk2_ardour/editor_tempodisplay.cc')
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc36
1 files changed, 10 insertions, 26 deletions
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index 4eb43ad53b..09d9b39c73 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -119,7 +119,7 @@ Editor::tempo_map_changed (const PropertyChange& /*ignored*/)
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end);
_session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers
- redraw_measures ();
+ draw_measures (begin, end);
update_tempo_based_rulers (begin, end);
}
@@ -130,22 +130,18 @@ Editor::redisplay_tempo (bool immediate_redraw)
return;
}
- ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
- ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
-
- compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(),
- current_bbt_points_begin, current_bbt_points_end);
-
if (immediate_redraw) {
- redraw_measures ();
+ ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
+ ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
+
+ compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(),
+ current_bbt_points_begin, current_bbt_points_end);
+ draw_measures (current_bbt_points_begin, current_bbt_points_end);
+ update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end); // redraw rulers and measures
+
} else {
-#ifdef GTKOSX
- redraw_measures ();
-#else
- Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redraw_measures));
-#endif
+ Glib::signal_idle().connect (sigc::bind_return (sigc::bind (sigc::mem_fun (*this, &Editor::redisplay_tempo), true), false));
}
- update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end); // redraw rulers and measures
}
void
@@ -170,18 +166,6 @@ Editor::hide_measures ()
tempo_lines->hide();
}
-bool
-Editor::redraw_measures ()
-{
- ARDOUR::TempoMap::BBTPointList::const_iterator begin;
- ARDOUR::TempoMap::BBTPointList::const_iterator end;
-
- compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end);
- draw_measures (begin, end);
-
- return false;
-}
-
void
Editor::draw_measures (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end)