/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2000--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2000--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "align-interface.hh"
+#include "axis-group-interface.hh"
#include "engraver.hh"
+#include "page-layout-problem.hh"
#include "pointer-group-interface.hh"
#include "side-position-interface.hh"
-#include "axis-group-interface.hh"
-#include "align-interface.hh"
-#include "text-interface.hh"
#include "system.hh"
+#include "text-interface.hh"
#include "translator.icc"
SCM short_text_;
vector<Grob *> axis_groups_;
+ vector<Grob *> backup_axis_groups_;
virtual void finalize ();
DECLARE_ACKNOWLEDGER (axis_group);
&& !info.grob ()->internal_has_interface (ly_symbol2scm ("volta-interface"))
&& (!Align_interface::has_interface (info.grob ())))
{
- axis_groups_.push_back (info.grob ());
+ if (Page_layout_problem::is_spaceable (info.grob ()))
+ axis_groups_.push_back (info.grob ());
+ else
+ // By default, don't include non-spaceable staves in the
+ // support of an instrument name. However, if the only staves
+ // are non-spaceable, we'll fall back to using them.
+ backup_axis_groups_.push_back (info.grob ());
}
}
void
Instrument_name_engraver::stop_spanner ()
{
+ if (axis_groups_.empty ())
+ axis_groups_ = backup_axis_groups_;
+
for (vsize i = 0; i < axis_groups_.size (); i++)
Pointer_group_interface::add_grob (text_spanner_,
ly_symbol2scm ("elements"),