- if (dynamic_p_)
- {
- dynamic_req_l_arr_[i]->warning (_("Got a dynamic already. Continuing dazed and confused"));
- continue;
- }
-
- Text_def * td_p = new Text_def;
- td_p->align_dir_ = CENTER;
- String loud = absd->loudness_str ();
- td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_; // ugh
- td_p->style_str_ = "dynamic";
+ if (script_ev_)
+ rq = script_ev_;
+ }
+ }
+
+ /*
+ During a (de)crescendo, pending event will not be cleared,
+ and a line-spanner will always be created, as \< \! are already
+ two events.
+
+ Note: line-spanner must always have at least same duration
+ as (de)crecsendo, b.o. line-breaking.
+ */
+
+
+ /*
+ maybe we should leave dynamic texts to the text-engraver and
+ simply acknowledge them?
+ */
+ if (script_ev_)
+ {
+ script_ = make_item ("DynamicText", script_ev_->self_scm ());
+ script_->set_property ("text",
+ script_ev_->get_property ("text"));
+
+
+ if (Direction d = to_dir (script_ev_->get_property ("direction")))
+ set_grob_direction (line_spanner_, d);
+
+ Axis_group_interface::add_element (line_spanner_, script_);
+ }
+
+ Music *stop_ev = accepted_spanreqs_drul_ [STOP] ?
+ accepted_spanreqs_drul_[STOP] : script_ev_;
+
+ if (accepted_spanreqs_drul_[STOP] || script_ev_)
+ {
+ /*
+ finish side position alignment if the (de)cresc ends here, and
+ there are no new dynamics.
+ */