when doing a pure copy of a region, which resets the position, reset the position...
[ardour.git] / gtk2_ardour / editor_tempodisplay.cc
index 90fd6136cf4e1e17f530e05cc6f59583bd49cb44..1069e457e635efa1dab9f7576e5b9116c838ff21 100644 (file)
@@ -85,11 +85,11 @@ Editor::draw_metric_marks (const Metrics& metrics)
 
                if ((ms = dynamic_cast<const MeterSection*>(*i)) != 0) {
                        snprintf (buf, sizeof(buf), "%g/%g", ms->beats_per_bar(), ms->note_divisor ());
-                       metric_marks.push_back (new MeterMarker (*this, *meter_group, *cursor_group, ARDOUR_UI::config()->canvasvar_MeterMarker.get(), buf,
+                       metric_marks.push_back (new MeterMarker (*this, *meter_group, ARDOUR_UI::config()->canvasvar_MeterMarker.get(), buf,
                                                                 *(const_cast<MeterSection*>(ms))));
                } else if ((ts = dynamic_cast<const TempoSection*>(*i)) != 0) {
                        snprintf (buf, sizeof (buf), "%.2f", ts->beats_per_minute());
-                       metric_marks.push_back (new TempoMarker (*this, *tempo_group, *cursor_group, ARDOUR_UI::config()->canvasvar_TempoMarker.get(), buf,
+                       metric_marks.push_back (new TempoMarker (*this, *tempo_group, ARDOUR_UI::config()->canvasvar_TempoMarker.get(), buf,
                                                                 *(const_cast<TempoSection*>(ts))));
                }
 
@@ -113,6 +113,7 @@ Editor::tempo_map_changed (const PropertyChange& /*ignored*/)
        compute_current_bbt_points(leftmost_frame, leftmost_frame + current_page_frames());
        _session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers
        redraw_measures ();
+       update_tempo_based_rulers ();
 }
 
 void
@@ -124,7 +125,6 @@ Editor::redisplay_tempo (bool immediate_redraw)
 
        compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames()); // redraw rulers and measures
 
-       compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames());
        if (immediate_redraw) {
                redraw_measures ();
        } else {
@@ -144,7 +144,7 @@ Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost)
                return;
        }
 
-       BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame
+       Timecode::BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame
 
        _session->bbt_time(leftmost, previous_beat);
        _session->bbt_time(rightmost, next_beat);
@@ -224,7 +224,7 @@ Editor::mouse_add_new_tempo_event (framepos_t frame)
        }
 
        double bpm = 0;
-       BBT_Time requested;
+       Timecode::BBT_Time requested;
 
        bpm = tempo_dialog.get_bpm ();
        double nt = tempo_dialog.get_note_type();
@@ -271,7 +271,7 @@ Editor::mouse_add_new_meter_event (framepos_t frame)
        bpb = max (1.0, bpb); // XXX is this a reasonable limit?
 
        double note_type = meter_dialog.get_note_type ();
-       BBT_Time requested;
+       Timecode::BBT_Time requested;
 
        meter_dialog.get_bbt_time (requested);
 
@@ -352,7 +352,7 @@ Editor::edit_tempo_section (TempoSection* section)
 
        double bpm = tempo_dialog.get_bpm ();
        double nt = tempo_dialog.get_note_type ();
-       BBT_Time when;
+       Timecode::BBT_Time when;
        tempo_dialog.get_bbt_time(when);
        bpm = max (0.01, bpm);