-void
-Text_engraver::do_process_requests ()
-{
- for (int i=0; i < reqs_.size (); i++)
- {
- Text_script_req * r = reqs_[i];
-
- G_text_item *text = new G_text_item;
- G_staff_side_item *ss = new G_staff_side_item;
-
- ss->set_victim (text);
- ss->dir_ = r->dir_;
-
- text->text_str_ = r->text_str_;
-
- if (r->style_str_.empty_b ())
- {
- Scalar p (get_property ("textStyle", 0));
- if (p.length_i ())
- text->style_str_ = p;
- }
- else
- text->style_str_ = r->style_str_;
-
- Scalar padding = get_property ("textScriptPadding", 0);
- if (padding.length_i() && padding.isnum_b ())
- {
- ss->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
- }
-
- Scalar empty = get_property ("textEmptyDimension", 0);
- if (empty.to_bool ())
- {
- text->dim_cache_[X_AXIS].set_empty (true);
- }
-
- announce_element (Score_element_info (text, r));
- announce_element (Score_element_info (ss, r));
-
- texts_.push (text);
- positionings_.push (ss);
+ /* see script-engraver.cc */
+ priority += i;
+
+ text->set_property ("script-priority", scm_from_int (priority));
+
+ Direction dir = to_dir (r->get_property ("direction"));
+ if (dir)
+ set_grob_direction (text, dir);
+
+ SCM mark = r->get_property ("text");
+
+ text->set_property ("text", mark);