]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/ligature-bracket-engraver.cc
(warning): better robustness fix.
[lilypond.git] / lily / ligature-bracket-engraver.cc
index 59e7687907ef9b88912135c4c6b056580a7c5b0b..6f8d9e97cc0c84a675fe6daf268468950d75124d 100644 (file)
@@ -7,6 +7,8 @@
   
  */
 #include "ligature-engraver.hh"
+#include "note-column.hh"
+#include "tuplet-bracket.hh"
 #include "spanner.hh"
 #include "warn.hh"
 
@@ -14,6 +16,7 @@ class Ligature_bracket_engraver : public Ligature_engraver
 {
 protected:
   virtual Spanner *create_ligature_spanner ();
+  virtual void acknowledge_grob (Grob_info);
 
 public:
   TRANSLATOR_DECLARATIONS(Ligature_bracket_engraver);
@@ -33,10 +36,23 @@ Ligature_bracket_engraver::create_ligature_spanner ()
   return new Spanner (get_property ("LigatureBracket"));
 }
 
+void
+Ligature_bracket_engraver::acknowledge_grob (Grob_info info)
+{
+  if (ligature_)
+    {
+      if (Note_column::has_interface (info.grob_))
+       {
+         Tuplet_bracket::add_column (ligature_, dynamic_cast<Item*> (info.grob_));
+       }
+      else Ligature_engraver::acknowledge_grob (info);
+    }
+}
+
 ENTER_DESCRIPTION(Ligature_bracket_engraver,
 /* descr */       "Handles Ligature_events by engraving Ligature brackets.",
-/* creats*/       "LigatureBracket",
+/* creats*/       "TupletBracket",
 /* accepts */     "ligature-event abort-event",
-/* acks  */      "ligature-head-interface rest-interface",
+/* acks  */      "ligature-head-interface rest-interface note-column-interface",
 /* reads */       "",
 /* write */       "");