Can Unreal4 global invalidation be further optimized?

Recently, while reading the source code of Slate UI, I found that when the size, visibility, or render transform of a child widget named ‘A’ changes, the parent widget is added to the needingUpdateList, which causes all adjacent widgets of the ‘A’ to be updated.

Is this approach too violent? Can we only redraw the changed child widget when the parent widget is redrawn, without redrawing the adjacent widgets?

I’m looking for the circumstances under which the change of a child widget does not cause the adjacent widgets to change. My current preliminary conclusion or guess is that when the change of a child widget does not affect the size change of the parent widget, the adjacent widgets do not need to be redrawn because if the size of the parent node has not changed, the layout of the child control should not have changed either.

For instance, in the case of PanelBox, the calculation of its DesiredSize is highly dependent on its child widgets. When the size of the child widget changes, the positions of the child widgets will change according to its own layout. At this point, all child widgets should indeed be redrawn. For Overlay, its DesiredSize depends on the largest widget. When the largest widget changes, the size of Overlay will change, and the anchor point positions corresponding to the slots on the child widgets will also change. This will also cause the redrawing of adjacent widgets. However, when its size does not change, since the adjacent nodes themselves have not changed, their positions remain the same, and thus redrawing is unnecessary. The same applies to ConstraintCanvas. This is the basis for my above speculation.

Your guidance is highly appreciated!!!

Please ignore my poor English~~haha