Hi There!
I use a custom widget to interface with text within my non slate UI. This mostly works.
One problem I have is defining the area that the custom widget uses to respond to mouse clicks, which then causes some focus problems.
I see I can get an FGeometery for the screen containing the widget, but how do I setup the one for my Widget from this using MakeChild as the comments say I should?
And I’ve been thinking along these lines - though this doesn’t work:
FWidgetPath WidgetPath;
TSharedPtr<SWindow> ContainingWindow = FSlateApplication::Get().FindWidgetWindow(m_EditText.ToSharedRef(), WidgetPath);
if (ContainingWindow.IsValid())
{
UIArea scaled = GetArea();
FGeometry ChildWindowGeometry = ContainingWindow->GetWindowGeometryInScreen();
FSlateLayoutTransform transform(scaled.GetTL());
auto geom = ChildWindowGeometry.MakeChild(scaled.GetExtents(), transform);
m_EditText->Tick(geom, 0.f, dt);
}
^^^ UIArea is a simple area construct in game window space - GetTL is the top left coord, GetExtents is its size.