/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2010 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
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
{
}
/* process whiteout */
- 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 */
Interval
Grob::pure_height (Grob *refp, int start, int end)
{
- SCM proc = get_property_data (ly_symbol2scm ("Y-extent"));
- SCM iv_scm = call_pure_function (proc,
- scm_list_1 (self_scm ()),
- start, end);
+ SCM iv_scm = get_pure_property ("Y-extent", start, end);
Interval iv = robust_scm2interval (iv_scm, Interval (0, 0));
Real offset = pure_relative_y_coordinate (refp, start, end);