]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grace-iterator.cc
Web-ja: update introduction
[lilypond.git] / lily / grace-iterator.cc
index 800bf8ec8ee2b30250dcdcd4ab5fb2455996b294..4954dc914d2793c080967e235d8630605e321418 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1999--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1999--2015 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
 
 #include "grace-iterator.hh"
 #include "global-context.hh"
-#include "warn.hh"
+#include "music.hh"
 
 void
 Grace_iterator::process (Moment m)
 {
   Moment main;
   main.main_part_ = -start_mom_.grace_part_ + m.grace_part_;
+
+  // GraceChange is announced in order to make the Grace_engraver able
+  // to distinguish \stemNeutral \grace { ... and \grace { \stemNeutral ...
+  if (in_grace_ != bool (m.grace_part_) && child_iter_ && child_iter_->get_outlet ())
+    {
+      send_stream_event (child_iter_->get_outlet (), "GraceChange", get_music ()->origin ());
+    }
+  in_grace_ = m.grace_part_;
+
   Music_wrapper_iterator::process (main);
 
   /* We can safely do this, since \grace should always be inside