From: David Kastrup Date: Fri, 4 Jan 2013 20:25:48 +0000 (+0100) Subject: Issue 3083: Chord change detection in fretboards should depend on placements, not... X-Git-Tag: release/2.17.10-1~10 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=39c65df5036506cfbf12d9835dccdbf3d717cc96;p=lilypond.git Issue 3083: Chord change detection in fretboards should depend on placements, not notes --- diff --git a/lily/fretboard-engraver.cc b/lily/fretboard-engraver.cc index d53c9132eb..4530642144 100644 --- a/lily/fretboard-engraver.cc +++ b/lily/fretboard-engraver.cc @@ -53,19 +53,19 @@ protected: DECLARE_TRANSLATOR_LISTENER (fingering); private: - SCM last_fret_notes_; + SCM last_placements_; }; void Fretboard_engraver::derived_mark () const { - scm_gc_mark (last_fret_notes_); + scm_gc_mark (last_placements_); } Fretboard_engraver::Fretboard_engraver () { fret_board_ = 0; - last_fret_notes_ = SCM_EOL; + last_placements_ = SCM_BOOL_F; } IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, note); @@ -111,11 +111,12 @@ Fretboard_engraver::process_music () scm_list_2 (tab_strings, fingers), fret_board_->self_scm ()); SCM changes = get_property ("chordChanges"); - if (to_boolean (changes) && scm_is_pair (last_fret_notes_) - && ly_is_equal (last_fret_notes_, fret_notes)) + SCM placements = fret_board_->get_property ("dot-placement-list"); + if (to_boolean (changes) + && ly_is_equal (last_placements_, placements)) fret_board_->set_property ("begin-of-line-visible", SCM_BOOL_T); - last_fret_notes_ = fret_notes; + last_placements_ = placements; } void