Description

Ensure will trigger when undo reverts text to default value.

"This triggers an ensure because the undo ends up calling SKismetInspector::ShowDetailsForObjects(), which forces the keyboard focus to get cleared on the text editor widget, causing it to attempt to submit the current value while it is in the middle of applying the undo transaction."

Potential fix: (Licensee would like to know if this is best way to prevent this)

 if (* !GIsTransacting &&* FSlateApplication::Get().HasFocusedDescendants(AsShared()) )
 {
     FSlateApplication::Get().ClearKeyboardFocus(EFocusCause::Mouse);
 }

Confirmed in Main (4.22) CL 4404204

Steps to Reproduce

1. Create a new blueprint
2. Add a Text variable (also tested with Name and Interger)
3. Compile the blueprint so you can change the default value.
4. Change the default value to anything other than None and hit Enter to submit the change.
5. Press Ctrl+Z to undo the change without doing anything

Result: ensure will hit: Ensure condition failed: !GIsTransacting

Callstack

LogOutputDevice: Error: === Handled ensure: ===
LogOutputDevice: Error: Ensure condition failed: !GIsTransacting [Link Removed] [Line: 72]
LogOutputDevice: Error: Stack:
LogOutputDevice: Error: [Callstack] 0x000000002048B706 UE4Editor-Core.dll!FWindowsPlatformStackWalk::StackWalkAndDump() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:234]
LogOutputDevice: Error: [Callstack] 0x00000000201EAE3A UE4Editor-Core.dll!FDebug::EnsureFailed() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:299]
LogOutputDevice: Error: [Callstack] 0x00000000201FECD6 UE4Editor-Core.dll!FDebug::OptionallyLogFormattedEnsureMessageReturningFalse() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:430]
LogOutputDevice: Error: [Callstack] 0x000000001A7ED23C UE4Editor-UnrealEd.dll!UTransBuffer::BeginInternal<FTransaction>() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\classes\editor\transbuffer.h:72]
LogOutputDevice: Error: [Callstack] 0x000000001A799451 UE4Editor-UnrealEd.dll!UEditorEngine::BeginTransaction() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:1091]
LogOutputDevice: Error: [Callstack] 0x0000000018E30F63 UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:507]
LogOutputDevice: Error: [Callstack] 0x0000000018DE195B UE4Editor-PropertyEditor.dll!<lambda_6601be400562b511ff01219c84317293>::operator()() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:2864]
LogOutputDevice: Error: [Callstack] 0x0000000018E0EFFB UE4Editor-PropertyEditor.dll!FPropertyValueImpl::EnumerateObjectsToModify() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:55]
LogOutputDevice: Error: [Callstack] 0x0000000018E71B4C UE4Editor-PropertyEditor.dll!FPropertyHandleBase::SetPerObjectValue() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:2852]
LogOutputDevice: Error: [Callstack] 0x000000001599B447 UE4Editor-DetailCustomizations.dll!`anonymous namespace'::FEditableTextPropertyHandle::SetText() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\detailcustomizations\private\textcustomization.cpp:82]
LogOutputDevice: Error: [Callstack] 0x000000001F68AFC9 UE4Editor-EditorWidgets.dll!STextPropertyEditableTextBox::OnTextCommitted() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\editorwidgets\private\stextpropertyeditabletextbox.cpp:955]
LogOutputDevice: Error: [Callstack] 0x000000001F66DA77 UE4Editor-EditorWidgets.dll!TBaseSPMethodDelegateInstance<0,STextPropertyEditableTextBox,0,TTypeWrapper<void> __cdecl(FText const & __ptr64,enum ETextCommit::Type)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
LogOutputDevice: Error: [Callstack] 0x000000001F66F147 UE4Editor-EditorWidgets.dll!TBaseSPMethodDelegateInstance<0,STextPropertyEditableTextBox,0,void __cdecl(FText const & __ptr64,enum ETextCommit::Type)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
LogOutputDevice: Error: [Callstack] 0x00000000350658E5 UE4Editor-Slate.dll!FSlateEditableTextLayout::HandleFocusLost() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\widgets\text\slateeditabletextlayout.cpp:783]
LogOutputDevice: Error: [Callstack] 0x0000000034E85A74 UE4Editor-Slate.dll!FSlateApplication::SetUserFocus() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:2893]
LogOutputDevice: Error: [Callstack] 0x0000000034E27584 UE4Editor-Slate.dll!FSlateApplication::ClearKeyboardFocus() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:2654]
LogOutputDevice: Error: [Callstack] 0x000000001FAFFB14 UE4Editor-Kismet.dll!SKismetInspector::ShowDetailsForObjects() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\skismetinspector.cpp:461]
LogOutputDevice: Error: [Callstack] 0x000000001FBC6D19 UE4Editor-Kismet.dll!SMyBlueprint::OnActionSelectedHelper() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\smyblueprint.cpp:1645]
LogOutputDevice: Error: [Callstack] 0x000000001FBC6207 UE4Editor-Kismet.dll!SMyBlueprint::OnActionSelected() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\smyblueprint.cpp:1565]
LogOutputDevice: Error: [Callstack] 0x000000001FB96767 UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,SMyBlueprint,0,TTypeWrapper<void> __cdecl(TArray<TSharedPtr<FEdGraphSchemaAction,0>,FDefaultAllocator> const & __ptr64,enum ESelectInfo::Type)>::Execute() [d:\build++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateins
tancesimpl.h:269]
LogOutputDevice: Error: [Callstack] 0x0000000018910D03 UE4Editor-GraphEditor.dll!SGraphActionMenu::HandleSelection() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\grapheditor\private\sgraphactionmenu.cpp:1355]
LogOutputDevice: Error: [Callstack] 0x000000001893A184 UE4Editor-GraphEditor.dll!SGraphActionMenu::OnItemSelected() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\grapheditor\private\sgraphactionmenu.cpp:1182]
LogOutputDevice: Error: [Callstack] 0x00000000188D98EB UE4Editor-GraphEditor.dll!TBaseSPMethodDelegateInstance<0,SGraphActionMenu,0,TTypeWrapper<void> __cdecl(TSharedPtr<FGraphActionNode,0>,enum ESelectInfo::Type)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
LogOutputDevice: Error: [Callstack] 0x00000000188DF7CA UE4Editor-GraphEditor.dll!TBaseSPMethodDelegateInstance<0,SGraphActionMenu,0,void __cdecl(TSharedPtr<FGraphActionNode,0>,enum ESelectInfo::Type)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
LogOutputDevice: Error: [Callstack] 0x00000000188DDC77 UE4Editor-GraphEditor.dll!TBaseDelegate<void,TSharedPtr<FGraphActionNode,0>,enum ESelectInfo::Type>::ExecuteIfBound() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:624]
LogOutputDevice: Error: [Callstack] 0x0000000018963EEC UE4Editor-GraphEditor.dll!SListView<TSharedPtr<FGraphActionNode,0> >::Private_SignalSelectionChanged() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\public\widgets\views\slistview.h:729]
LogOutputDevice: Error: [Callstack] 0x000000001898312F UE4Editor-GraphEditor.dll!SGraphActionMenu::SelectItemByName() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\grapheditor\private\sgraphactionmenu.cpp:559]
LogOutputDevice: Error: [Callstack] 0x000000001FB6583B UE4Editor-Kismet.dll!SMyBlueprint::ClearGraphActionMenuSelection() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\smyblueprint.cpp:2758]
LogOutputDevice: Error: [Callstack] 0x000000001F7CC71B UE4Editor-Kismet.dll!FBlueprintEditor::ClearSelectionStateFor() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:812]
LogOutputDevice: Error: [Callstack] 0x000000001F8467ED UE4Editor-Kismet.dll!FBlueprintEditor::HandleUndoTransaction() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:2892]
LogOutputDevice: Error: [Callstack] 0x000000001F88FCDD UE4Editor-Kismet.dll!FBlueprintEditor::PostUndo() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:2906]
LogOutputDevice: Error: [Callstack] 0x000000001A79A0A6 UE4Editor-UnrealEd.dll!UEditorEngine::BroadcastPostUndo() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:5045]
LogOutputDevice: Error: [Callstack] 0x000000001A7C2062 UE4Editor-UnrealEd.dll!UEditorEngine::HandleTransactorUndo() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:1186]
LogOutputDevice: Error: [Callstack] 0x000000001A7A9329 UE4Editor-UnrealEd.dll!TBaseUObjectMethodDelegateInstance<0,UEditorEngine,TTypeWrapper<void> __cdecl(FUndoSessionContext,bool)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:597]
LogOutputDevice: Error: [Callstack] 0x000000001A7A9C5B UE4Editor-UnrealEd.dll!TBaseUObjectMethodDelegateInstance<0,UEditorEngine,void __cdecl(FUndoSessionContext,bool)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:657]
LogOutputDevice: Error: [Callstack] 0x000000001A81019B UE4Editor-UnrealEd.dll!TBaseMulticastDelegate<void,FUndoSessionContext,bool>::Broadcast() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
LogOutputDevice: Error: [Callstack] 0x000000001A851F9E UE4Editor-UnrealEd.dll!UTransBuffer::Undo() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\editortransaction.cpp:899]
LogOutputDevice: Error: [Callstack] 0x000000001F81FE41 UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
LogOutputDevice: Error: [Callstack] 0x000000001F824BA6 UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
LogOutputDevice: Error: [Callstack] 0x0000000034E28376 UE4Editor-Slate.dll!FUICommandList::ConditionalProcessCommandBindings() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:216]
LogOutputDevice: Error: [Callstack] 0x0000000034E64BD0 UE4Editor-Slate.dll!FUICommandList::ProcessCommandBindings() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:160]
LogOutputDevice: Error: [Callstack] 0x000000001AFF06AE UE4Editor-UnrealEd.dll!FBaseToolkit::ProcessCommandBindings() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\toolkits\basetoolkit.cpp:74]
LogOutputDevice: Error: [Callstack] 0x000000001AFDBC4C UE4Editor-UnrealEd.dll!SStandaloneAssetEditorToolkitHost::OnKeyDown() [d:\build\++ue4+release-4.19+compile\sync\engine\source\editor\unrealed\private\toolkits\sstandaloneasseteditortoolkithost.cpp:324]
LogOutputDevice: Error: [Callstack] 0x0000000034E14D61 UE4Editor-Slate.dll!<lambda_2afcd964c763e269e2d1a63f3a72f846>::operator()() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5011]
LogOutputDevice: Error: [Callstack] 0x0000000034DE6D2D UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FKeyEvent,<lambda_2afcd964c763e269e2d1a63f3a72f846> >() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:266]
LogOutputDevice: Error: [Callstack] 0x0000000034DE88F6 UE4Editor-Slate.dll!FEventRouter::RouteAlongFocusPath<FEventRouter::FBubblePolicy,<lambda_2afcd964c763e269e2d1a63f3a72f846>,FKeyEvent>() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:247]
LogOutputDevice: Error: [Callstack] 0x0000000034E663CA UE4Editor-Slate.dll!FSlateApplication::ProcessKeyDownEvent() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5009]
LogOutputDevice: Error: [Callstack] 0x0000000034E599C8 UE4Editor-Slate.dll!FSlateApplication::OnKeyDown() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4921]
LogOutputDevice: Error: [Callstack] 0x000000005293E3DA UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1561]
LogOutputDevice: Error: [Callstack] 0x0000000052931B78 UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2172]
LogOutputDevice: Error: [Callstack] 0x000000005294052C UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:889]
LogOutputDevice: Error: [Callstack] 0x000000005292D679 UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:726]
LogOutputDevice: Error: [Callstack] 0x000000007A48B85D USER32.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x000000007A48B1EF USER32.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x0000000052941666 UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
LogOutputDevice: Error: [Callstack] 0x0000000008F15475 UE4Editor.exe!FEngineLoop::Tick() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3263]
LogOutputDevice: Error: [Callstack] 0x0000000008F26BD0 UE4Editor.exe!GuardedMain() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
LogOutputDevice: Error: [Callstack] 0x0000000008F26C4A UE4Editor.exe!GuardedMainWrapper() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
LogOutputDevice: Error: [Callstack] 0x0000000008F34177 UE4Editor.exe!WinMain() [d:\build\++ue4+release-4.19+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
LogOutputDevice: Error: [Callstack] 0x0000000008F35B87 UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
LogOutputDevice: Error: [Callstack] 0x000000007BB71FE4 KERNEL32.DLL!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x000000007CA4CB31 ntdll.dll!UnknownFunction []

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-64569 in the post.

2
Login to Vote

Unresolved
ComponentGameplay - Blueprint
Affects Versions4.19.24.224.20.3
CreatedSep 28, 2018
UpdatedOct 2, 2018