If a grob is invisible, the 'whiteout property should not
be taken into account. This will simplify the tablature
handling and doesn't affect the rest.
if (Stencil *m = unsmob_stencil (stil))
{
retval = *m;
if (Stencil *m = unsmob_stencil (stil))
{
retval = *m;
- if (to_boolean (get_property ("transparent")))
+ bool transparent = to_boolean (get_property ("transparent"));
+
+ if (transparent)
retval = Stencil (m->extent_box (), SCM_EOL);
else
{
retval = Stencil (m->extent_box (), SCM_EOL);
else
{
- if (to_boolean (get_property ("whiteout")))
+ /* a grob has to be visible, otherwise the whiteout property has no effect */
+ if (!transparent && to_boolean (get_property ("whiteout")))
{
/* Call the scheme procedure stencil-whiteout in scm/stencils.scm */
/* to add a round-filled-box stencil to the stencil list */
{
/* Call the scheme procedure stencil-whiteout in scm/stencils.scm */
/* to add a round-filled-box stencil to the stencil list */
(when ,ly:moment? "Global time step associated with this column
happen?")
(whiteout ,boolean? "If true, the grob is printed over a white
(when ,ly:moment? "Global time step associated with this column
happen?")
(whiteout ,boolean? "If true, the grob is printed over a white
-background to white-out underlying material. Usually #f by default.")
+background to white-out underlying material, if the grob is visible.
+ Usually #f by default.")
(width ,ly:dimension? "The width of a grob measured in staff
space.")
(word-space ,ly:dimension? "Space to insert between words in
(width ,ly:dimension? "The width of a grob measured in staff
space.")
(word-space ,ly:dimension? "Space to insert between words in