#include "item.hh"
#include "lily-proto.hh"
#include "line-interface.hh"
+#include "note-column.hh"
#include "output-def.hh"
#include "paper-column.hh"
#include "pointer-group-interface.hh"
? columns[0] : columns.back ();
}
- Interval extent = (Paper_column::has_interface (bound_grob)
- ? Axis_group_interface::generic_bound_extent (bound_grob, commonx, X_AXIS)
- : robust_relative_extent (bound_grob, commonx, X_AXIS));
+ Real x_coord = (Paper_column::has_interface (bound_grob)
+ ? Axis_group_interface::generic_bound_extent (bound_grob, commonx, X_AXIS)
+ : robust_relative_extent (bound_grob, commonx, X_AXIS)).linear_combination (attach);
+
+ Grob *acc = Note_column::accidentals (bound_grob->get_parent (X_AXIS));
+ if (acc && to_boolean (ly_assoc_get (ly_symbol2scm ("end-on-accidental"), details, SCM_BOOL_F)))
+ x_coord = robust_relative_extent (acc, commonx, X_AXIS).linear_combination (attach);
details = scm_acons (ly_symbol2scm ("X"),
- scm_from_double (extent.linear_combination (attach)),
+ scm_from_double (x_coord),
details);
}
(Glissando
. (
(after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
- (bound-details . ((right . ((attach-dir . ,CENTER)
- (padding . 1.5)
+ (bound-details . ((right . ((attach-dir . ,LEFT)
+ (end-on-accidental . #t)
+ (padding . 0.5)
))
- (left . ((attach-dir . ,CENTER)
- (padding . 1.5)
+ (left . ((attach-dir . ,RIGHT)
+ (padding . 0.5)
))
))
(gap . 0.5)