From 16aac5ba2665057f40b89c5eb8961f4c9e6b26d9 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:15:48 -0700 Subject: [PATCH] nodeparamview: only calculate time adjustment when keyframing --- .../nodeparamview/nodeparamviewkeyframecontrol.cpp | 2 +- .../nodeparamview/nodeparamviewwidgetbridge.cpp | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp b/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp index 1a9011224..e6785b388 100644 --- a/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp +++ b/app/widget/nodeparamview/nodeparamviewkeyframecontrol.cpp @@ -177,7 +177,7 @@ void NodeParamViewKeyframeControl::ToggleKeyframe(bool e) void NodeParamViewKeyframeControl::UpdateState() { - if (!input_.IsValid()) { + if (!input_.IsValid() || !input_.IsKeyframing()) { return; } diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index d6b939408..f538f42fc 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -198,9 +198,9 @@ void NodeParamViewWidgetBridge::SetInputValue(const QVariant &value, int track) void NodeParamViewWidgetBridge::SetInputValueInternal(const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key) { - rational node_time = GetCurrentTimeAsNodeTime(); - if (input_.IsKeyframing()) { + rational node_time = GetCurrentTimeAsNodeTime(); + NodeKeyframe* existing_key = input_.GetKeyframeAtTimeOnTrack(node_time, track); if (existing_key) { @@ -236,14 +236,14 @@ void NodeParamViewWidgetBridge::SetInputValueInternal(const QVariant &value, int void NodeParamViewWidgetBridge::ProcessSlider(NumericSliderBase *slider, const QVariant &value) { - rational node_time = GetCurrentTimeAsNodeTime(); - int slider_track = widgets_.indexOf(slider); if (slider->IsDragging()) { // While we're dragging, we block the input's normal signalling and create our own if (!dragger_.IsStarted()) { + rational node_time = GetCurrentTimeAsNodeTime(); + dragger_.Start(NodeKeyframeTrackReference(input_, slider_track), node_time); } @@ -416,7 +416,10 @@ void NodeParamViewWidgetBridge::UpdateWidgetValues() return; } - rational node_time = GetCurrentTimeAsNodeTime(); + rational node_time; + if (input_.IsKeyframing()) { + node_time = GetCurrentTimeAsNodeTime(); + } // We assume the first data type is the "primary" type switch (input_.GetDataType()) {