Retainer Box Makes Combobox Buggy

When the HUD is wrapped in a retainer box, the combo box behaves differently from normal: a scrollbar appears on the side and the menu items have to be clicked several times to be selected. Depending on the clicking speed, two or three clicks are needed - two when clicking slowly, three when doing a quick double-click.

Here’s a video that illustrates the issue: Retainer Box Issue - YouTube

When no retainer box is used, one click is always enough and there is no scrollbar.

Is there a way to fix this?

1 Like

Just tested this on 4.27 and I’m getting this issue too.

It doesn’t happen with an invalidation box, so if you are just looking to cache/optimize you can use that.

If you don’t care about caching/optimization and are just using the retainer box for it’s effect material, un-ticking “Retain Render” fixes this issue.

Note quite a solution, but at least a workaround :confused:

Hi! The only reason I’m using the retainer box is to be able to apply an effect to the whole UI at once - super useful feature. Do you know of any other way to do that, without using the retainer box?

Un-ticking “Retain Render” disables the material for me (Retainer Box Issue 2 - YouTube). Doesn’t it do the same for you?

Bump. It would be really useful to apply a material/effect to all UI elements, and I know of no other way than the retainer box. Help!

Same issue here. Just filed a bug report for this!

After tracing down the issue, I found that it lies in STableRow.h#564:

	virtual FReply OnMouseButtonUp( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override
...
			if ( HasMouseCapture() )
			{
				if ( bIsUnderMouse && !bDragWasDetected )
				{
					switch( GetSelectionMode() )
...

HasMouseCapture() does return false when a retainer box is active, causing this statement to not execute.

1 Like

Thank you for reporting the bug, this was driving me crazy! Haha :slight_smile:

Retainer boxes are simply unusable at the moment, maybe you can use them if you wanna make small adjustments on some specific widgets, but they’re not worth it even in that case.
I used a Retainer Box material to make a Curved UI effect, but I disabled it because of its problems. These are the issues I encountered so far:

  • You cannot use an editable textbox because on a curved UI you get a wrong position on mouse click (maybe the hitbox doesn’t follow the material modified UVs)
  • You cannot use Background Blur, so you cannot have a curved UI and background blur together

There are more problems with a retainer box than without it, so maybe I’ll wait until retainer boxes get fixed (maybe never).

Actually, you could try running the following console command:

Slate.EnableRetainedRenderingWithLocalTransform 0

or set it automatically at startup by adding the following into DefaultEngine.ini:

[SystemSettings]
; Fix for UE-107863 by https://github.com/EpicGames/UnrealEngine/commit/15c59521f6088422532c236410c23046e88428d0
Slate.EnableRetainedRenderingWithLocalTransform=False

This console variable was added in this commit and fixed lots of issues for me related to text boxes. However, for the combo box the only fix was to build my own in Slate and fix the above mentioned issue myself.

1 Like

Thank you for the answer, but it still has an incorrect hitbox position, anyway with that command the textbox doesn’t get other weird bugs, so at least it’s better :joy:

Would love to know if anyone could fine a fix for this, for me I am purely using the retainer box for its material properties, but it causes box my combo boxes, and my text in the box not to update properly, making it practically useless. if anyone has found a workaround, I would love to know!