From 35bf24f6b8b699542856bdffe5db2fb15d788c0f Mon Sep 17 00:00:00 2001 From: Alexandra Russell Date: Wed, 27 May 2026 14:24:47 -0500 Subject: [PATCH] Fix piano roll not updating after pitch bend node value change fineTuneValue() in AutomationEditor directly sets node inValue/outValue via AutomationNode::setInValue/setOutValue, which recalculate tangents but do not emit dataChanged(). The piano roll is connected to dataChanged() on the detuning AutomationClip, so it never received the repaint signal and showed a stale pitch bend line until hovered. Fix: emit dataChanged() on the clip after the node value is set. AutomationEditor is already a declared friend of AutomationClip, so it has access to the protected signal. Fixes #7675 --- src/gui/editors/AutomationEditor.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/editors/AutomationEditor.cpp b/src/gui/editors/AutomationEditor.cpp index 9e3fa98f245..83ab4b077a7 100644 --- a/src/gui/editors/AutomationEditor.cpp +++ b/src/gui/editors/AutomationEditor.cpp @@ -374,6 +374,8 @@ bool AutomationEditor::fineTuneValue(timeMap::iterator node, bool editingOutValu node.value().setInValue(value); } + // Notify listeners (e.g. PianoRoll) that clip data changed + emit m_clip->dataChanged(); Engine::getSong()->setModified(); return true; }