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 {
} 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,
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) {
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;
}
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();
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;
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;
}
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 ();
}