]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/vertical-align-engraver.cc
Change the behavior of nested StaffGroupers.
[lilypond.git] / lily / vertical-align-engraver.cc
index b90af7471af3d3f21efe31dd0537cbda123bd575..9a6e3afa30c8e58aff8e92e3168c23d504fa3755 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  vertical-align-engraver.cc -- implement Vertical_align_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2009 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
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "context.hh"
@@ -152,9 +163,10 @@ Vertical_align_engraver::acknowledge_axis_group (Grob_info i)
            }
        }
     }
-  else if (!top_level_)
+  else if (qualifies (i))
     {
       Pointer_group_interface::add_grob (valign_, ly_symbol2scm ("elements"), i.grob ());
-      i.grob ()->set_object ("staff-grouper", valign_->self_scm ());
+      if (!unsmob_grob (i.grob ()->get_object ("staff-grouper")))
+       i.grob ()->set_object ("staff-grouper", valign_->self_scm ());
     }
 }