]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grob.cc
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / lily / grob.cc
index 911243bd5bd0a77a72e4f076a457d94ea9f03ef3..5047b35be0c0c337d45bddf338fdc49f7a5f0384 100644 (file)
@@ -123,7 +123,9 @@ Grob::get_print_stencil () const
   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
        {
@@ -156,7 +158,8 @@ Grob::get_print_stencil () const
        }
 
       /* 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 */
@@ -448,10 +451,7 @@ Grob::extent (Grob *refp, Axis a) const
 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);