fix background of ArdourButtons with no Body
[ardour.git] / gtk2_ardour / editor_drag.cc
index 87d11013457a902daa231dc01e62761948b24c61..d2fd96e685f14943779812d992c706b2c228d091 100644 (file)
@@ -527,7 +527,7 @@ Drag::add_midi_region (MidiTimeAxisView* view, bool commit)
 
 struct PresentationInfoTimeAxisViewSorter {
        bool operator() (TimeAxisView* a, TimeAxisView* b) {
-               return a->presentation_info() < b->presentation_info();
+               return a->presentation_info().order() < b->presentation_info().order();
        }
 };
 
@@ -3273,7 +3273,7 @@ TempoMarkerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
 void
 TempoMarkerDrag::setup_pointer_frame_offset ()
 {
-       _pointer_frame_offset = raw_grab_frame() - _marker->tempo().frame();
+       _pointer_frame_offset = raw_grab_frame() - _real_section->frame();
 }
 
 void
@@ -3335,42 +3335,16 @@ TempoMarkerDrag::motion (GdkEvent* event, bool first_move)
                show_verbose_cursor_text (strs.str());
 
        } else if (_movable && !_real_section->locked_to_meter()) {
-               TempoMap& map (_editor->session()->tempo_map());
-               const bool was_music = _real_section->position_lock_style() == MusicTime;
-
                const framepos_t pf = adjusted_current_frame (event);
+               TempoMap& map (_editor->session()->tempo_map());
 
-               if (!_editor->snap_musical()) {
-
-                       if (was_music) {
-                               _real_section->set_position_lock_style (AudioTime);
-                       }
-
-                       map.gui_move_tempo (_real_section, pf);
-
-                       if (was_music) {
-                               _real_section->set_position_lock_style (MusicTime);
-                       }
-
-               } else {
-
-                       if (!was_music) {
-                               _real_section->set_position_lock_style (MusicTime);
-                       }
-
-                       map.gui_move_tempo (_real_section, pf);
+               /* snap to beat is 1, snap to bar is -1 (sorry) */
+               int sub_num = _editor->get_grid_music_divisions (event->button.state);
 
-                       if (!was_music) {
-                               _real_section->set_position_lock_style (AudioTime);
-                       }
-               }
+               map.gui_move_tempo (_real_section, pf, sub_num);
 
                show_verbose_cursor_time (_real_section->frame());
        }
-
-       /* this has moved the bar lines themselves, so recalibrate the offset */
-       setup_pointer_frame_offset();
-
        _marker->set_position (adjusted_current_frame (event, false));
 }