From c44e6e55681395d4ae4d59807aeab0b136d933bc Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Sun, 17 Dec 2006 09:29:36 +0200 Subject: [PATCH] Fix conflicts between outside-staff-priority and script-priority. --- lily/axis-group-interface.cc | 4 ++-- lily/dynamic-engraver.cc | 21 --------------------- lily/script-column.cc | 14 +++++++++++++- scm/define-grobs.scm | 1 - 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index a1a1353c1f..4319bb8b92 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -299,8 +299,8 @@ Axis_group_interface::get_children (Grob *me, vector *found) bool staff_priority_less (Grob * const &g1, Grob * const &g2) { - int priority_1 = robust_scm2int (g1->get_property ("outside-staff-priority"), INT_MIN); - int priority_2 = robust_scm2int (g2->get_property ("outside-staff-priority"), INT_MIN); + Real priority_1 = robust_scm2double (g1->get_property ("outside-staff-priority"), -infinity_f); + Real priority_2 = robust_scm2double (g2->get_property ("outside-staff-priority"), -infinity_f); if (priority_1 < priority_2) return true; diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 5c3d0feecd..8f64db1136 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -64,7 +64,6 @@ class Dynamic_engraver : public Engraver TRANSLATOR_DECLARATIONS (Dynamic_engraver); DECLARE_ACKNOWLEDGER (accidental); - DECLARE_ACKNOWLEDGER (script); DECLARE_ACKNOWLEDGER (stem_tremolo); DECLARE_ACKNOWLEDGER (note_column); DECLARE_ACKNOWLEDGER (slur); @@ -454,27 +453,7 @@ Dynamic_engraver::acknowledge_note_column (Grob_info info) finished_cresc_->set_bound (RIGHT, info.grob ()); } -void -Dynamic_engraver::acknowledge_script (Grob_info info) -{ - if (!line_spanner_ || !script_) - return; - - SCM p = info.grob ()->get_property ("script-priority"); - - /* - UGH. - - DynamicText doesn't really have a script-priority field. - */ - if (scm_is_number (p) - && scm_to_int (p) - < scm_to_int (script_->get_property ("script-priority"))) - Side_position_interface::add_support (line_spanner_, info.grob ()); -} - ADD_ACKNOWLEDGER (Dynamic_engraver, accidental); -ADD_ACKNOWLEDGER (Dynamic_engraver, script); ADD_ACKNOWLEDGER (Dynamic_engraver, note_column); ADD_ACKNOWLEDGER (Dynamic_engraver, slur); ADD_ACKNOWLEDGER (Dynamic_engraver, stem_tremolo); diff --git a/lily/script-column.cc b/lily/script-column.cc index 726b327276..a8fc0c3fc4 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -133,7 +133,19 @@ Script_column::order_grobs (vector grobs) { Grob *g = unsmob_grob (scm_car (s)); if (last) - Side_position_interface::add_support (g, last); + { + SCM outside_staff = last->get_property ("outside-staff-priority"); + if (scm_is_number (outside_staff)) + { + /* we allow the outside-staff-priority ordering to override the + script-priority ordering */ + if (!scm_is_number (g->get_property ("outside-staff-priority"))) + g->set_property ("outside-staff-priority", + scm_from_double (scm_to_double (outside_staff) + 0.1)); + } + else + Side_position_interface::add_support (g, last); + } last = g; } diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index ca3bcd130d..becbc1c597 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -601,7 +601,6 @@ (font-shape . italic) (avoid-slur . around) (no-spacing-rods . #t) - (script-priority . 100) (outside-staff-priority . 250) (meta . ((class . Item) (interfaces . (font-interface -- 2.39.2