Merge pull request #10198 from RomanPudashkin/duplicated_chord_symbols_fix

[MU4] fix #10107: Adding a chord creates a duplicate text which is visible when selected
This commit is contained in:
Elnur Ismailzada 2022-01-10 12:16:11 +02:00 committed by GitHub
commit 93d1e7c4d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1928,17 +1928,23 @@ void NotationInteraction::drawSelectionRange(draw::Painter* painter)
void NotationInteraction::drawGripPoints(draw::Painter* painter)
{
if (!selection()->element()) {
Ms::EngravingItem* selectedElement = selection()->element();
int gripsCount = selectedElement ? selectedElement->gripsCount() : 0;
if (gripsCount == 0) {
return;
}
bool editingElement = m_editData.element != nullptr;
if (!editingElement) {
m_editData.element = selection()->element();
m_editData.element = selectedElement;
if (!m_editData.element->isTextBase() && !m_editData.getData(m_editData.element)) {
m_editData.element->startEdit(m_editData);
}
}
m_editData.grips = m_editData.element->gripsCount();
m_editData.grips = gripsCount;
m_editData.grip.resize(m_editData.grips);
constexpr qreal DEFAULT_GRIP_SIZE = 8;
@ -1946,7 +1952,7 @@ void NotationInteraction::drawGripPoints(draw::Painter* painter)
qreal gripSize = DEFAULT_GRIP_SIZE / scaling;
RectF newRect(-gripSize / 2, -gripSize / 2, gripSize, gripSize);
EngravingItem* page = m_editData.element->findAncestor(ElementType::PAGE);
const EngravingItem* page = m_editData.element->findAncestor(ElementType::PAGE);
PointF pageOffset = page ? page->pos() : m_editData.element->pos();
for (RectF& gripRect: m_editData.grip) {
@ -1955,6 +1961,7 @@ void NotationInteraction::drawGripPoints(draw::Painter* painter)
m_editData.element->updateGrips(m_editData);
m_editData.element->drawEditMode(painter, m_editData, currentScaling(painter));
if (!editingElement) {
m_editData.element = nullptr;
}