--- /dev/null
+\version "2.15.40"
+
+\header {
+ texidoc = "Slurs take flag extents into account.
+"
+}
+
+\relative c'' {
+ \stemUp
+ \slurUp
+ b8( c)
+}
DECLARE_GROB_INTERFACE ();
static Item *get_stem (Grob *);
+ static Item *get_flag (Grob *);
};
#endif // NOTE_COLUMN_HH
Grob *slur_head_;
Grob *staff_;
Grob *stem_;
+ Grob *flag_;
Interval slur_head_x_extent_;
Real staff_space_;
return unsmob_item (s);
}
+Item *
+Note_column::get_flag (Grob *me)
+{
+ Item *stem = get_stem (me);
+ if (stem)
+ {
+ SCM s = stem->get_object ("flag");
+ return unsmob_item (s);
+ }
+ return 0;
+}
+
Slice
Note_column::head_positions_interval (Grob *me)
{
{
extremes[d].note_column_ = extremes[d].bound_;
extremes[d].stem_ = Note_column::get_stem (extremes[d].note_column_);
+ extremes[d].flag_ = Note_column::get_flag (extremes[d].note_column_);
+
if (extremes[d].stem_)
{
extremes[d].stem_dir_ = get_grob_direction (extremes[d].stem_);
{
Axis ax = Axis (a);
Interval s = extremes[d].stem_->extent (common_[ax], ax);
+ if (extremes[d].flag_)
+ s.unite (extremes[d].flag_->extent (common_[ax], ax));
if (s.is_empty ())
{
/*