X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmeasure-grouping-spanner.cc;h=3702becd27cf7ce8189ac0aba2c20f9d08a47b80;hb=a0a40c02de757661518577105dbb644a6ecdbc4d;hp=55c76ae277296ef44bf0bc1143eb9779e04cf971;hpb=a93f125a797581fb1e1093ba7c59ac22b64862f4;p=lilypond.git diff --git a/lily/measure-grouping-spanner.cc b/lily/measure-grouping-spanner.cc index 55c76ae277..3702becd27 100644 --- a/lily/measure-grouping-spanner.cc +++ b/lily/measure-grouping-spanner.cc @@ -28,26 +28,33 @@ Measure_grouping::brew_molecule (SCM grob) Real t = me->get_paper ()->get_var ("linethickness") * gh_scm2double (thick); Grob *common = me->get_bound(LEFT)->common_refpoint (me->get_bound (RIGHT), X_AXIS); - Real w = me->get_bound (LEFT)->relative_coordinate (common, X_AXIS) - - me->get_bound (RIGHT)->relative_coordinate (common, X_AXIS); + + Interval rext = me->get_bound (RIGHT)->extent (common, X_AXIS); + + + Real w =(rext.empty_b() + ? me->get_bound (RIGHT)->relative_coordinate (common, X_AXIS) + : rext[RIGHT]) + - me->get_bound (LEFT)->relative_coordinate (common, X_AXIS); Interval iv (0,w); Molecule m; if (which == ly_symbol2scm ("bracket")) { - m = Lookup::bracket (X_AXIS, iv,t, gh_scm2double (height)); + m = Lookup::bracket (X_AXIS, iv, t,-gh_scm2double (height)); } else if (which == ly_symbol2scm ("triangle")) { m = Lookup::triangle (iv, t, gh_scm2double (height)); } + m.align_to (Y_AXIS, DOWN); return m.smobbed_copy(); } ADD_INTERFACE (Measure_grouping,"measure-grouping-interface", "indicate groups of beats. Valid choices for 'type are 'bracket and 'triangle.", - "thickness height"); + "thickness type height");