WidgetComponent controls widgets through VirtualWindow, but VirtualWindow does not have HWND, so IME cannot be enabled.
The following workaround enables IME activation.
void FSlateEditableTextLayout::FTextInputMethodContext::CacheWindow() { if (!OwnerLayout) { return; } const TSharedRef<const SWidget> OwningSlateWidgetPtr = OwnerLayout->OwnerWidget->GetSlateWidget(); #if 0 CachedParentWindow = FSlateApplication::Get().FindWidgetWindow(OwningSlateWidgetPtr); #else //workaround TSharedPtr<SWindow> SlateWindow = FSlateApplication::Get().FindWidgetWindow(OwningSlateWidgetPtr); if (SlateWindow->IsVirtualWindow()) { SlateWindow = FSlateApplication::Get().GetActiveTopLevelRegularWindow(); } CachedParentWindow = SlateWindow; #endif }
IME cannot be enabled
Why does the REMOVE method of map container remove elements have memory leaks?
How do I set a material as a post-processing material?
How does TextureRenderTarget2D get TArray<uint8> type data?
What is the difference between Camera and CineCamera?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
How to delete some elements correctly when deleting an array loop?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-211575 in the post.
5 |
Component | UE - Editor - UI Systems |
---|---|
Affects Versions | 5.2, 5.3 |
Created | Apr 5, 2024 |
---|---|
Updated | Oct 10, 2024 |