X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Feditor_markers.cc;h=4b0ba07b77aeadd4b0b749fe4cd4f71f1bca2ba9;hb=a606a83d2ec43d9fbf9b65969afb3b3c46c546fa;hp=68ce914025356e007dbb07eadf091ec4d8a06049;hpb=bb457bb960c5bd7ed538f9d31477293415739f68;p=ardour.git diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index 68ce914025..4b0ba07b77 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -79,7 +79,7 @@ Editor::add_new_location (Location *location) if (location->is_mark()) { - if (location->is_cd_marker() && ruler_shown[ruler_time_cd_marker]) { + if (location->is_cd_marker() && ruler_cd_marker_action->get_active()) { lam->start = new Marker (*this, *cd_marker_group, color, location->name(), Marker::Mark, location->start()); } else { @@ -103,7 +103,7 @@ Editor::add_new_location (Location *location) } else { // range marker - if (location->is_cd_marker() && ruler_shown[ruler_time_cd_marker]) { + if (location->is_cd_marker() && ruler_cd_marker_action->get_active()) { lam->start = new Marker (*this, *cd_marker_group, color, location->name(), Marker::Start, location->start()); lam->end = new Marker (*this, *cd_marker_group, color, @@ -212,7 +212,7 @@ void Editor::update_cd_marker_display () void Editor::ensure_cd_marker_updated (LocationMarkers * lam, Location * location) { if (location->is_cd_marker() - && (ruler_shown[ruler_time_cd_marker] && lam->start->get_parent() != cd_marker_group)) + && (ruler_cd_marker_action->get_active() && lam->start->get_parent() != cd_marker_group)) { //cerr << "reparenting non-cd marker so it can be relocated: " << location->name() << endl; if (lam->start) { @@ -222,7 +222,7 @@ void Editor::ensure_cd_marker_updated (LocationMarkers * lam, Location * locatio lam->end->reparent (*cd_marker_group); } } - else if ( (!location->is_cd_marker() || !ruler_shown[ruler_time_cd_marker]) + else if ( (!location->is_cd_marker() || !ruler_cd_marker_action->get_active()) && (lam->start->get_parent() == cd_marker_group)) { //cerr << "reparenting non-cd marker so it can be relocated: " << location->name() << endl; @@ -388,13 +388,20 @@ Editor::LocationMarkers::set_color_rgba (uint32_t rgba) } void -Editor::mouse_add_new_marker (nframes_t where, bool is_cd) +Editor::mouse_add_new_marker (nframes_t where, bool is_cd, bool is_xrun) { - string markername; + string markername, markerprefix; int flags = (is_cd ? Location::IsCDMarker|Location::IsMark : Location::IsMark); - + + if (is_xrun) { + markerprefix = "xrun"; + flags = Location::IsMark; + } else { + markerprefix = "mark"; + } + if (session) { - session->locations()->next_available_name(markername,"mark"); + session->locations()->next_available_name(markername, markerprefix); Location *location = new Location (where, where, markername, (Location::Flags) flags); session->begin_reversible_command (_("add marker")); XMLNode &before = session->locations()->get_state(); @@ -1106,7 +1113,7 @@ Editor::update_punch_range_view (bool visibility) double x2 = frame_to_pixel (tpl->end()); guint track_canvas_width,track_canvas_height; - track_canvas.get_size(track_canvas_width,track_canvas_height); + track_canvas->get_size(track_canvas_width,track_canvas_height); transport_punch_range_rect->property_x1() = x1; transport_punch_range_rect->property_x2() = x2; @@ -1151,6 +1158,10 @@ Editor::update_punch_range_view (bool visibility) void Editor::marker_selection_changed () { + if (session && session->deletion_in_progress()) { + return; + } + for (LocationMarkerMap::iterator i = location_markers.begin(); i != location_markers.end(); ++i) { LocationMarkers* lam = i->second; @@ -1172,7 +1183,7 @@ Editor::marker_selection_changed () } for (MarkerSelection::iterator x = selection->markers.begin(); x != selection->markers.end(); ++x) { - (*x)->add_line (cursor_group, canvas_height); + (*x)->add_line (cursor_group, vertical_adjustment.get_value(), canvas_height); (*x)->show_line (); }