diff --git a/src/scripts/changeTracker.ts b/src/scripts/changeTracker.ts index 3a478c6765..a66f8bf3c6 100644 --- a/src/scripts/changeTracker.ts +++ b/src/scripts/changeTracker.ts @@ -110,11 +110,11 @@ export class ChangeTracker { window.addEventListener( 'keydown', (e) => { + const activeEl = document.activeElement; requestAnimationFrame(async () => { - let activeEl + let bindInputEl // If we are auto queue in change mode then we do want to trigger on inputs if (!app.ui.autoQueueEnabled || app.ui.autoQueueMode === 'instant') { - activeEl = document.activeElement if ( activeEl?.tagName === 'INPUT' || activeEl?.['type'] === 'textarea' @@ -122,6 +122,7 @@ export class ChangeTracker { // Ignore events on inputs, they have their native history return } + bindInputEl = activeEl } keyIgnored = @@ -135,7 +136,7 @@ export class ChangeTracker { if (await changeTracker().undoRedo(e)) return // If our active element is some type of input then handle changes after they're done - if (ChangeTracker.bindInput(app, activeEl)) return + if (ChangeTracker.bindInput(app, bindInputEl)) return changeTracker().checkState() }) },