Start step entry at playhead.
authorDavid Robillard <d@drobilla.net>
Thu, 8 Jan 2015 01:46:21 +0000 (20:46 -0500)
committerDavid Robillard <d@drobilla.net>
Thu, 8 Jan 2015 01:46:21 +0000 (20:46 -0500)
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/public_editor.h
gtk2_ardour/step_editor.cc

index b7ec7d43b2bed3f24be865413ad6ddc10a1331d1..53ad481eb3f0d02d259ca568a7385c4fd5ec3e68 100644 (file)
@@ -4611,7 +4611,7 @@ Editor::sort_track_selection (TrackViewList& sel)
 }
 
 framepos_t
-Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_menu)
+Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_menu, bool from_outside_canvas)
 {
        bool ignored;
        framepos_t where = 0;
@@ -4620,8 +4620,10 @@ Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_men
        if(Profile->get_mixbus())
                if (ep == EditAtSelectedMarker)
                        ep=EditAtPlayhead;
-               
-       if (from_context_menu && (ep == EditAtMouse)) {
+
+       if (from_outside_canvas && (ep == EditAtMouse)) {
+               ep = EditAtPlayhead;
+       } else if (from_context_menu && (ep == EditAtMouse)) {
                return  canvas_event_sample (&context_click_event, 0, 0);
        }
 
index 9261b01a7e44b390685cb7f5ddb788d0e34c07c2..77d28f4e12bbea862c55644e5c5217ab8a901416 100644 (file)
@@ -382,7 +382,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void reset_zoom (framecnt_t);
        void reposition_and_zoom (framepos_t, double);
 
-       framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool use_context_click = false);
+       framepos_t get_preferred_edit_position (bool ignore_playhead = false,
+                                               bool use_context_click = false,
+                                               bool from_outside_canvas = false);
 
        bool update_mouse_speed ();
        bool decelerate_mouse_speed ();
index c484537ee1a40bfc878eb8098f2aa9c8765e481f..69a3b13fcd3b86f6824a4b041eab87ce04fbce50 100644 (file)
@@ -280,7 +280,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi
        virtual void restore_editing_space () = 0;
        virtual void update_tearoff_visibility () = 0;
        virtual void reattach_all_tearoffs () = 0;
-       virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false) = 0;
+       virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false, bool from_outside_canvas = false) = 0;
        virtual void toggle_meter_updating() = 0;
        virtual void split_regions_at (framepos_t, RegionSelection&) = 0;
        virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
index 46482991886b97662613766a80b33b562ced9a3c..7bd82cfa7d838c8a568d5d1b0e01b3f4dad27861 100644 (file)
@@ -88,7 +88,7 @@ StepEditor::start_step_editing ()
 void
 StepEditor::resync_step_edit_position ()
 {
-       step_edit_insert_position = _editor.get_preferred_edit_position ();
+       step_edit_insert_position = _editor.get_preferred_edit_position (false, false, true);
 }
 
 void