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.
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).
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-239008 in the post.
0 |
Component | UE - Editor - Workflow Systems |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.6 |
Fix Commit | 32327562 |
---|
Created | Jan 15, 2025 |
---|---|
Resolved | Mar 18, 2025 |
Updated | Mar 18, 2025 |