summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r--gtk2_ardour/editor_drag.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 52b5ab6d1a..0116f9feaa 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -3481,27 +3481,31 @@ BBTRulerDrag::BBTRulerDrag (Editor* e, ArdourCanvas::Item* i)
, before_state (0)
{
DEBUG_TRACE (DEBUG::Drags, "New BBTRulerDrag\n");
-
}
void
BBTRulerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
{
Drag::start_grab (event, cursor);
- show_verbose_cursor_time (adjusted_current_frame (event));
+ TempoMap& map (_editor->session()->tempo_map());
+ ostringstream sstr;
+ sstr << fixed << setprecision(3) << map.tempo_at (adjusted_current_frame (event)).beats_per_minute();
+ show_verbose_cursor_text (sstr.str());
}
void
BBTRulerDrag::setup_pointer_frame_offset ()
{
- _pointer_frame_offset = 0;
+ TempoMap& map (_editor->session()->tempo_map());
+ _pointer_frame_offset = raw_grab_frame() - map.frame_at_beat (ceil (map.beat_at_frame (raw_grab_frame())));
}
void
BBTRulerDrag::motion (GdkEvent* event, bool first_move)
{
+ TempoMap& map (_editor->session()->tempo_map());
+
if (first_move) {
- TempoMap& map (_editor->session()->tempo_map());
/* get current state */
before_state = &map.get_state();
_editor->begin_reversible_command (_("dilate tempo"));
@@ -3513,7 +3517,9 @@ BBTRulerDrag::motion (GdkEvent* event, bool first_move)
/* adjust previous tempo to match pointer frame */
_editor->session()->tempo_map().gui_dilate_tempo (last_pointer_frame(), pf);
}
- show_verbose_cursor_time (pf);
+ ostringstream sstr;
+ sstr << fixed << setprecision(3) << map.tempo_at (pf).beats_per_minute();
+ show_verbose_cursor_text (sstr.str());
}
void