Description

Reparenting a widget within it's own event can cause that widget's tree to have null references instead of references to slate widgets. This happens because when a widget is reparented, we remove and rebuild the slate resources. The removal happens as expected, but the event still has a reference to the slate widget, so we do not rebuild the slate widgets and instead set the references to pointers that are now null.

Steps to Reproduce
  1. Create a UserWidget with a button and some hover events that change the color
  2. Create a UserWidget with two panels, and your button widget in one of those panels
  3. When your button widget is clicked, have your outer UserWidget reparent the button widget to the other panel
  4. Note that many functions on the button widget no longer work, as the widgets in it's tree now have null references instead of references to the underlying slate widgets

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-39106 in the post.

0
Login to Vote

Fixed
ComponentUE - Editor - UI Systems
Affects Versions4.144.15
Target Fix4.15
Fix Commit3213603
Main Commit3229477
CreatedNov 28, 2016
ResolvedNov 29, 2016
UpdatedApr 27, 2018