From 1b42936caac3e16ab64c6b6a2e16e62639f2cc1f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 11 Aug 2010 20:16:39 +0000 Subject: [PATCH] make step edit cursor follow zoom (and change its color a bit) git-svn-id: svn://localhost/ardour2/branches/3.0@7601 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/midi_region_view.cc | 15 ++++++++++++--- gtk2_ardour/midi_region_view.h | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 7438e3e862..52b2150de4 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -90,6 +90,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView & , _drag_rect (0) , _step_edit_cursor (0) , _step_edit_cursor_width (1.0) + , _step_edit_cursor_position (0.0) , _mouse_state(None) , _pressed_button(0) , _sort_needed (true) @@ -1132,6 +1133,9 @@ MidiRegionView::reset_width_dependent_items (double pixel_width) if (_enable_display) { redisplay_model(); } + + move_step_edit_cursor (_step_edit_cursor_position); + set_step_edit_cursor_width (_step_edit_cursor_width); } void @@ -3002,10 +3006,12 @@ MidiRegionView::show_step_edit_cursor (Evoral::MusicalTime pos) void MidiRegionView::move_step_edit_cursor (Evoral::MusicalTime pos) { + _step_edit_cursor_position = pos; + if (_step_edit_cursor) { double pixel = trackview.editor().frame_to_pixel (beats_to_frames (pos)); _step_edit_cursor->property_x1() = pixel; - _step_edit_cursor->property_x2() = pixel + _step_edit_cursor_width; + set_step_edit_cursor_width (_step_edit_cursor_width); } } @@ -3020,7 +3026,10 @@ MidiRegionView::hide_step_edit_cursor () void MidiRegionView::set_step_edit_cursor_width (Evoral::MusicalTime beats) { - _step_edit_cursor_width = trackview.editor().frame_to_pixel (beats_to_frames (beats)); - _step_edit_cursor->property_x2() = _step_edit_cursor->property_x1() + _step_edit_cursor_width; + _step_edit_cursor_width = beats; + + if (_step_edit_cursor) { + _step_edit_cursor->property_x2() = _step_edit_cursor->property_x1() + trackview.editor().frame_to_pixel (beats_to_frames (beats)); + } } diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h index e153646ae4..268bcdc0dd 100644 --- a/gtk2_ardour/midi_region_view.h +++ b/gtk2_ardour/midi_region_view.h @@ -369,7 +369,8 @@ class MidiRegionView : public RegionView double _last_y; ArdourCanvas::SimpleRect* _drag_rect; ArdourCanvas::SimpleRect* _step_edit_cursor; - double _step_edit_cursor_width; + Evoral::MusicalTime _step_edit_cursor_width; + Evoral::MusicalTime _step_edit_cursor_position; MouseState _mouse_state; int _pressed_button;