diff --git a/include/vrv/adjustxposfunctor.h b/include/vrv/adjustxposfunctor.h index 641bda82629..ffdb5380762 100644 --- a/include/vrv/adjustxposfunctor.h +++ b/include/vrv/adjustxposfunctor.h @@ -107,6 +107,8 @@ class AdjustXPosFunctor : public DocFunctor { int m_staffN; // The current staff size int m_staffSize; + // The current staff is neume + bool m_isNeumeStaff; // The list of staffN in the top-level scoreDef std::vector m_staffNs; // The bounding boxes in the previous aligner diff --git a/src/adjustxposfunctor.cpp b/src/adjustxposfunctor.cpp index 88b0cf1a031..c901a84a27c 100644 --- a/src/adjustxposfunctor.cpp +++ b/src/adjustxposfunctor.cpp @@ -126,7 +126,7 @@ FunctorCode AdjustXPosFunctor::VisitLayerElement(LayerElement *layerElement) return FUNCTOR_SIBLINGS; } - if (layerElement->GetAlignment()->GetType() == ALIGNMENT_CLEF) { + if ((layerElement->GetAlignment()->GetType() == ALIGNMENT_CLEF) && !m_isNeumeStaff) { return FUNCTOR_CONTINUE; } @@ -232,6 +232,7 @@ FunctorCode AdjustXPosFunctor::VisitMeasure(Measure *measure) m_currentAlignment.Reset(); StaffAlignment *staffAlignment = system->m_systemAligner.GetStaffAlignmentForStaffN(staffN); m_staffSize = (staffAlignment) ? staffAlignment->GetStaffSize() : 100; + m_isNeumeStaff = (staffAlignment && staffAlignment->GetStaff()) ? staffAlignment->GetStaff()->IsNeume() : false; // Prevent collisions of scoredef clefs with thick barlines if (hasSystemStartLine) { diff --git a/src/alignfunctor.cpp b/src/alignfunctor.cpp index 476bf07f10e..517f3ccf135 100644 --- a/src/alignfunctor.cpp +++ b/src/alignfunctor.cpp @@ -394,7 +394,7 @@ FunctorCode AlignHorizontallyFunctor::VisitMeasureEnd(Measure *measure) if (m_hasMultipleLayer) measure->HasAlignmentRefWithMultipleLayers(true); - measure->m_measureAligner.LogDebugTree(3); + // measure->m_measureAligner.LogDebugTree(3); return FUNCTOR_CONTINUE; }