How to get viewport focus back from loading screen movie?

I am trying to use this tutorial to have a loading screen movie play between my scenes. I can get the test loading widget to work, but I wanted to do something more robust and play a movie.

I was able to get my own movie to work, but there’s an issue when entering the scene scene where keyboard/gamepad input loses focus. I can still control my UI using mouse, and once I click once focus comes back for gamepad and keyboard. Setting focus manually through blueprints has no effect, neither does “Set focus to game viewport” node.

EDIT - I have also tried GetMoviePlayer()->PassLoadingScreenWindowBackToGame(); but that does nothing as well.

Is this a bug, or am I missing something? My code for the loading screen is below.

void UTPGameInstance::Init()
{
	UGameInstance::Init();

	FCoreUObjectDelegates::PreLoadMap.AddUObject(this, &UTPGameInstance::BeginLoadingScreen);
	FCoreUObjectDelegates::PostLoadMap.AddUObject(this, &UTPGameInstance::EndLoadingScreen);
}

void UTPGameInstance::BeginLoadingScreen()
{
	FLoadingScreenAttributes LoadingScreen;
	LoadingScreen.bAutoCompleteWhenLoadingCompletes = false;
	LoadingScreen.bMoviesAreSkippable = false;
	LoadingScreen.MinimumLoadingScreenDisplayTime = 2;
	//LoadingScreen.WidgetLoadingScreen = FLoadingScreenAttributes::NewTestLoadingScreenWidget();

	LoadingScreen.MoviePaths.Add(TEXT("TacoLoading"));

	GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);
	GetMoviePlayer()->PlayMovie();
}

void UTPGameInstance::EndLoadingScreen()
{

}

Turns out if you comment out

GetMoviePlayer()->PlayMovie();

But still add the movie path to the movie before calling SetupLoadingScreen(); then the focus issue goes away and works as intended. Seems unintentional and counter intuitive, but I finally got it working.

Here is my working script -

void UTPGameInstance::Init()
{
	UGameInstance::Init();

	FCoreUObjectDelegates::PreLoadMap.AddUObject(this, &UTPGameInstance::BeginLoadingScreen);
	FCoreUObjectDelegates::PostLoadMap.AddUObject(this, &UTPGameInstance::EndLoadingScreen);
}

void UTPGameInstance::BeginLoadingScreen()
{
	FLoadingScreenAttributes LoadingScreen;
	LoadingScreen.bAutoCompleteWhenLoadingCompletes = false;
	LoadingScreen.bMoviesAreSkippable = false;
	LoadingScreen.MinimumLoadingScreenDisplayTime = 2;
	//LoadingScreen.WidgetLoadingScreen = FLoadingScreenAttributes::NewTestLoadingScreenWidget();

	LoadingScreen.MoviePaths.Add(TEXT("TacoLoading"));

	GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);
	//GetMoviePlayer()->PlayMovie();
}

void UTPGameInstance::EndLoadingScreen()
{

}