2006-06-13 Han-Wen Nienhuys <hanwen@lilypond.org>
+ * lily/tuplet-bracket.cc (calc_positions): look at
+ stem-end-position for tuplet bracket slope. Fixes sloped tuplet
+ brackets narrower than beams. Backportme.
+
+ * lily/lexer.ll: set version-seen? even if version is
+ INVALID. Backportme.
+
* lily/rest.cc (y_offset_callback): bugfix: decide position
override based on scm_is_number(). Fixes \rest on center staff
- line
+ line. Backportme.
* lily/beaming-pattern.cc (best_splitpoint_index): fix beaming
patterns for 16th triplets.
s = s.substr (0, s.rfind ('\"'));
yy_pop_state ();
- if (!is_valid_version (s))
- return INVALID;
SCM top_scope = scm_car (scm_last_pair (scopes_));
scm_module_define (top_scope, ly_symbol2scm ("version-seen?"), SCM_BOOL_T);
+ if (!is_valid_version (s))
+ return INVALID;
+
+
}
<sourcefilename>\"[^"]*\" {
string s (YYText () + 1);
}
+/*
+ Return beam that encompasses the span of the tuplet bracket.
+*/
+
Grob *
-Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob*> const &cols, bool *equally_long)
+Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob*> const &cols,
+ bool *equally_long)
{
Spanner *me = dynamic_cast<Spanner *> (me_grob);
}
*equally_long =
- (beam_stems[0] == stems[LEFT] && beam_stems.back () == stems[RIGHT]);
+ (beam_stems[0] == stems[LEFT]
+ && beam_stems.back () == stems[RIGHT]);
return beams[LEFT];
}
if (!par_beam
|| get_grob_direction (par_beam) != dir)
calc_position_and_height (me, &offset, &dy);
- else
+ else if (columns.size ()
+ && Note_column::get_stem (columns[0])
+ && Note_column::get_stem (columns.back ()))
{
- SCM ps = par_beam->get_property ("positions");
+ /*
+ trigger set_stem_ends
+ */
+ (void) par_beam->get_property ("quantized-positions");
- Real lp = scm_to_double (scm_car (ps));
- Real rp = scm_to_double (scm_cdr (ps));
- Real ss = Staff_symbol_referencer::staff_space (me);
+ Drul_array<Grob *> stems (Note_column::get_stem (columns[0]),
+ Note_column::get_stem (columns.back ()));
+
+
+
+
+ Real ss = 0.5 * Staff_symbol_referencer::staff_space (me);
+ Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0);
+ Real rp = ss * robust_scm2double (stems[RIGHT]->get_property ("stem-end-position"), 0.0);
+
offset = lp + dir * (0.5 + scm_to_double (me->get_property ("padding")));
dy = (rp - lp);
-
- dy *= ss;
- offset *= ss;
}