Why does clicking a widget pause the game?

Hi, i have a problem with Slta when i click on a widget the scene of the game just pause until i stop. For example if i drag a widget the scene is completely paused during the drag, when i drop it moves again. If i right click at the same time as drag the scene start to move again while i’m actually draging.

So the behavior i want is to not pause the scene at all, how can i avoid this behavior and what is causing it ?

Thanks !

I still have this problem and have no idea why it’s happening or even if this is a normal behavior ?

Everytime i drag or click on a slate widget the game doesn’t seems to render anymore or is paused… I don’t have much stuff on my scene, but i have the default skybox and the clouds stop moving while i’m dragging a widget.

Is this the editor widgets or your own widgets in game?

Hmm, I see what you mean, I’m getting the same issue dragging a window that’s fairly external to the main window. I suspect this is intended functionality, but there might be a way to turn it off… hopefully the Devs can let us know.

It’s my own widget in game, extending from SCompoundWidget

This is also happening in the strategy game example, just need to keep one of the button press when buying one of the turret and the whole game is paused :confused:

Ok i will reply to myself here. This behavior is related to the editor, it’s actually happening when you click on any window in the editor, it just stop the viewport rendering.

If you choose to “play this level in a new window” it doesn’t happen :slight_smile:

1 Like

There is a SlateThrottleManager that is per default set to allow throttling to keep the UI responsive under certain circumstances.

The code where the Tick block is happening:
EditorEngine.cpp

...
		if( FSlateThrottleManager::Get().IsAllowingExpensiveTasks() )
		{
			FKismetDebugUtilities::NotifyDebuggerOfStartOfGameFrame(EditorContext.World());
			EditorContext.World()->Tick(TickType, DeltaSeconds);
			bAWorldTicked = true;
			FKismetDebugUtilities::NotifyDebuggerOfEndOfGameFrame(EditorContext.World());
		}
...

The ThrottleManager constructor function

FSlateThrottleManager::FSlateThrottleManager( )
	: bShouldThrottle(1)
	, CVarAllowThrottle(TEXT("Slate.bAllowThrottling"), bShouldThrottle, TEXT("Allow Slate to throttle parts of the engine to ensure the UI is responsive") )
	, ThrottleCount(0)
{ }

That code tells us that there is a ConsoleVariable named “Slate.bAllowThrottling”.

So if you want to keep the world ticking, use the console and enter the command:

Slate.bAllowThrottling false
2 Likes