SWidget::FindChildGeometry fails in custom widget class

Hi,

So I’ve created a widget extending SCompoundWidget and adding support for custom slot like this:

class FKeySlot : public TSlotBase<FKeySlot>
	{
	public:	
		virtual ~FKeySlot(){}

		/** Default values for a slot. */
		FKeySlot()
			: TSlotBase<FKeySlot>()
			, SlotPadding( FMargin(0) )
		{
		}
};

And my widget declaration looks like this:

   SLATE_BEGIN_ARGS(SCustomWidget)
	{}
	SLATE_SUPPORTS_SLOT(SCustomWidget::FKeySlot)

Of course there are also functions like Add and Remove Slot but they are pretty much a copy from SOverlay.

Now, after I add few slots to SCustomWidget I would like to perform marquee selection on it and select/deselect “slots” that are inside MarqueeRect, like this:

if(bDoMarqueeSelection)
	{
		if(MarqueeRect.IsValid())
		{
			FSlateRect SelectionRect = MarqueeRect.ToSlateRect();

			for( int32 SlotIdx = 0; SlotIdx < Children.Num(); SlotIdx++)
			{
				FGeometry ChildGeometry = this->FindChildGeometry(AllottedGeometry, Children.GetChildAt(SlotIdx));
				FSlateRect ChildRect = ChildGeometry.GetClippingRect();
				
				
				if(FSlateRect::IsRectangleContained(SelectionRect, ChildRect))
				{
					AddSelectedKey(Children[SlotIdx].GetWidget());
				}
			}
		}
		bDoMarqueeSelection = false;
	}

above code is called in SCustomWidget’s Tick.

So the problem is that FindChildGeometry fails for some reason even though there SCustomWidget has children. Is there some new way to get child’s geometry? Or do I have to use AllottedGeometry.MakeChild(…) for each child and then check if its inside marquee rect?
It’s also possible that I messed up implementation of FKeySlot but theres not much to mess up I think…

Maybe this problem is related to new RenderTransforms that all widgets supports now?

Any comments appreciated.