FScopedSlowTask has been refactored to better allow for nesting of slow operations. This allows us to cascade nested scopes and provide accurate feedback on slow tasks. FScopedSlowTasks now work together when nested inside sub functions. Break up long functions that contain calls to multiple nested FScopedSlowTasks with FScopedSlowTask::EnterProgressFrame().
Example Usage:
void DoSlowWork()
{
FScopedSlowTask Progress(2.f, LOCTEXT("DoingSlowWork", "Doing Slow Work..."));
// Optionally make this show a dialog if not already shown
Progress.MakeDialog();
// Indicate that we are entering a frame representing 1 unit of work
Progress.EnterProgressFrame(1.f);
// DoFirstThing() can follow a similar pattern of creating a scope divided into frames. These contribute to their parent's progress frame proportionately.
DoFirstThing();
Progress.EnterProgressFrame(1.f);
DoSecondThing();
}
This addresses TTP#338602 - NEEDS REVIEW: Editor progress bars nearly always just show 100%, don't offer useful indication of progress
[CL 2322391 by Andrew Rodham in Main branch]
TTP# 343949 - CRASH: Adding Japanese comments to blueprints by pressing "c" key leads to crash
Newly created windows now have their HWND associated with the disabled IME contexts to prevent you being able to compose when there is no text area active. The only exception to this is when a new window opens while composing (eg, to show a search filter) - in this case we have to try and preserve the current IME context as the user is still typing.
To make sure that all of the windows which may be using an IME context are disabled when a text area loses focus, we now keep a list of known windows, and go through and re-associate each HWND with the disabled IME contexts when DeactivateContext is called.
There was also an issue where Slate widgets could be culled (and thus, unregister their context) without being told they had lost focus, which resulted in a crash as the active context had been unregistered. The Slate widgets in question now make sure they deactivate themselves before unregistering their context.
This also fixes an issue where an IMM based IME would incorrectly set the selection range when it was cancelled.
ReviewedBy Justin.Sargent. Saul.Abreu
[CL 2281277 by Jamie Dale in Main branch]
Fix for case when PLATFORM_SUPPORTS_NAMED_PIPES is defined to 0 (e.g. for debugging purposes).
#codereview Rolando.Caloca
[CL 2280929 by Dmitry Rekman in Main branch]
- Do not try to load ALAudio and SteamController on Linux servers (TTP #344970).
- Do not load HeadMountedDisplay on all platform servers.
#codereview Nick.Whiting, JJ.Hoesing, Josh.Adams
[CL 2276426 by Dmitry Rekman in Main branch]
- Allows access to display metrics before application object has been initialized, which is necessary to allow the game user settings preload function to correctly determine the right startup resolution for fullscreen modes.
Set fortnite default video mode to be windowed fullscreen
[CL 2264092 by Graeme Thornton in Main branch]