Also removing the option to use halfs for clipping data when sending it to the pixel shader as it doesn't make a ton of sense to keep this codepath available after discussing it with the others working on Slate.
#codereview matt.kuhlenschmidt nick.atamas wes.hunt
[CL 2583548 by Nick Darnell in Main branch]
UE-14641 - Fix PushMenu() to use QueryPopupMethod()
Pretty big refactor
Adds IMenu as way to identify menus. Replaces referring to menus as SWindows.
Lots of uses of PushMenu() fixed up to match new API
#codereview Nick.Atamas
[CL 2579277 by Chris Wood in Main branch]
There are now overloads to FUIAction that take a FGetActionCheckState delegate which is able to return any of the entries from ECheckBoxState. FIsActionChecked still exists for backwards compatibility, and converts the returned bool into a ECheckBoxState via a passthrough function.
#codereview Matt.Kuhlenschmidt
[CL 2570717 by Jamie Dale in Main branch]
- The Slate RHI renderer now uses a larger upfront pool for vertex buffers to avoid many upfront recreations of the vertex buffers
- The window element lists are no longer destroyed each frame and are reused as long as the window that they reference exists. This reduces memory allocations because arrays are no longer destroyed
- Creation of the final rendering batches has now been moved to the rendering thread
- The mapping of layers to element batch arrays has been simplified and is no longer emptied each frame thus avoiding memory allocations
[CL 2560820 by Matt Kuhlenschmidt in Main branch]
UE-11632 - Make SEditableText sleep-friendly.
SEditableText used to have spring animations for moving the caret and changing the selection, however these animations required the editable text to keep Slate active while they had focus in order to smoothly update the animation.
These animations have been removed, and the only ticking the editable text now needs to do is to blink the cursor (which is a much coarser animation). This also brings the look-and-feel of SEditableText and SMultiLineEditableText closer together, as the latter has never used these spring animations.
[CL 2555414 by Jamie Dale in Main branch]
UE-14833 - Cannot get input from input device without Controller already being created
FSceneViewport used to require you to click on it after alt-tabbing away from the game so that you got focus back for all users (as FSceneViewport::OnMouseButtonDown claimed focus for all users). This was due to the window re-activation only claiming focus for the keyboard user.
ReviewedBy Chris.Gagnon
[CL 2552411 by Jamie Dale in Main branch]
UE-15050 - black edge padding around message windows
We now only adjust the client size given to SWindow::Resize if we're using a window to which we've added window decorations (ie, a regular window). This avoids us inflating the size of tooltip and popup windows.
#codereview Graeme.Thornton
[CL 2550919 by Jamie Dale in Main branch]
There are 2 issues at play here:
* When setting the keyboard focus to a particular widget, it was possible for a widget to forward this focus onto another widget (inside SWidget::OnFocusReceived, called from FSlateApplication::SetUserFocus). If this handler returned an FReply that also set the user focus, the window's WidgetToFocusOnActivate would end up not being set to the correct widget. We now set WidgetToFocusOnActivate *before* invoking the focus received handler to ensure that the widget is set in the correct order.
* WidgetToFocusOnActivate is now entirely managed by SWindow, and handled only through window activation, rather than forcing keyboard focus to the window, and having the OnReceivedFocus handler focussing WidgetToFocusOnActivate. This prevents widgets temporarily losing focus when windows are activated (particularly things like editable text blocks that will close edit operations when focus is lost).
This addresses UE-14872 - Unable to name Variables upon creation
Reviewed by Matt Kuhlenschmidt
[CL 2547704 by Andrew Rodham in Main branch]