Description

Hello,

Our animation team reported an issue with the AutoKey feature of the LevelSequencer, sometimes they will notice that after a while, the undo buffer no longer works.

Unfortunately the issue is only spotted when they try to undo something so it could be several minutes after the bug actually triggered. This complicates getting a proper repro scenario.

I've tracked that down to a mismatch in calls to GEditor->BeginTransaction and GEditor->EndTransaction which I suspect happens due to another application stealing focus at the wrong time.

If for some reason the callback SNumericKeyEditor::OnEndSliderMovement isn't called, then the initiated transaction will never finish.

This should be fairly rare but for some reason our animation team keeps running into this.

A hacky workaround would be doing an early return in SNumericKeyEditor::OnBeginSliderMovement if a transaction is already active. This will revert the lockup on subsequent operations of the slider.

void OnBeginSliderMovement() { // HACK if (GEditor->IsTransactionActive()) { return; } // HACK GEditor->BeginTransaction(LOCTEXT("SetNumericKey", "Set Key Value")); }

I'm aware that this isn't satisfactory as it would interfere with other transactions possibly happening at the same time but it's the best I could come up with without digging too much into it.

Steps to Reproduce

Possibly, something stealing focus from a Spinbox causing the desired input to not fully be completed (therefore, there is nothing to be undone as there was technically nothing 'done' in the first place).

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-239008 in the post.

0
Login to Vote

Fixed
ComponentUE - Editor - Workflow Systems
Affects Versions5.4
Target Fix5.6
Fix Commit32327562
CreatedJan 15, 2025
ResolvedMar 18, 2025
UpdatedMar 18, 2025
View Jira Issue