Added support for exporting mp4 chapter marks
[ardour.git] / gtk2_ardour / editor.cc
index a6d36ee7992ae2ddcb367595f0d0a071dc2ef234..b1a1d7c4c6c5fee35ae0f309430457848a15151f 100644 (file)
@@ -68,6 +68,7 @@
 #include "ardour/audio_track.h"
 #include "ardour/audioengine.h"
 #include "ardour/audioregion.h"
+#include "ardour/lmath.h"
 #include "ardour/location.h"
 #include "ardour/profile.h"
 #include "ardour/route_group.h"
@@ -403,7 +404,7 @@ Editor::Editor ()
        location_loop_color = ARDOUR_UI::config()->color ("location loop");
        location_punch_color = ARDOUR_UI::config()->color ("location punch");
 
-       zoom_focus = ZoomFocusLeft;
+       zoom_focus = ZoomFocusPlayhead;
        _edit_point = EditAtMouse;
        _visible_track_count = -1;
 
@@ -1795,7 +1796,7 @@ Editor::add_region_context_items (Menu_Helpers::MenuList& edit_items, boost::sha
                _popup_region_menu_item->set_label (menu_item_name);
        }
 
-       const framepos_t position = get_preferred_edit_position (false, true);
+       const framepos_t position = get_preferred_edit_position (EDIT_IGNORE_NONE, true);
 
        edit_items.push_back (*_popup_region_menu_item);
        if (track->playlist()->count_regions_at (position) > 1 && (layering_order_editor == 0 || !layering_order_editor->is_visible ())) {
@@ -4654,15 +4655,15 @@ Editor::sort_track_selection (TrackViewList& sel)
 }
 
 framepos_t
-Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_menu, bool from_outside_canvas)
+Editor::get_preferred_edit_position (EditIgnoreOption ignore, bool from_context_menu, bool from_outside_canvas)
 {
        bool ignored;
        framepos_t where = 0;
        EditPoint ep = _edit_point;
 
-       if(Profile->get_mixbus())
+       if (Profile->get_mixbus())
                if (ep == EditAtSelectedMarker)
-                       ep=EditAtPlayhead;
+                       ep = EditAtPlayhead;
 
        if (from_outside_canvas && (ep == EditAtMouse)) {
                ep = EditAtPlayhead;
@@ -4675,10 +4676,14 @@ Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_men
                return entered_marker->position();
        }
 
-       if (ignore_playhead && ep == EditAtPlayhead) {
+       if ( (ignore==EDIT_IGNORE_PHEAD) && ep == EditAtPlayhead) {
                ep = EditAtSelectedMarker;
        }
 
+       if ( (ignore==EDIT_IGNORE_MOUSE) && ep == EditAtMouse) {
+               ep = EditAtPlayhead;
+       }
+
        switch (ep) {
        case EditAtPlayhead:
                if (_dragging_playhead) {
@@ -4686,8 +4691,9 @@ Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_men
                                /* XXX not right but what can we do ? */
                                return 0;
                        }
-               } else
+               } else {
                        where = _session->audible_frame();
+               }
                 DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("GPEP: use playhead @ %1\n", where));
                break;
 
@@ -5771,7 +5777,7 @@ Editor::show_editor_list (bool yn)
 void
 Editor::change_region_layering_order (bool from_context_menu)
 {
-       const framepos_t position = get_preferred_edit_position (false, from_context_menu);
+       const framepos_t position = get_preferred_edit_position (EDIT_IGNORE_NONE, from_context_menu);
 
        if (!clicked_routeview) {
                if (layering_order_editor) {