Open ekrctb opened 3 years ago
Nice find. This only breaks with self-rotation, right? Maybe an appropriate solution is to check Rotation == 0
before going into the fast path?
The issue also happens with Shear
. In general, if the transformation matrix has a non-zero entry in the specific coordinates then a child width change affects parent height.
A general way to fix the issue might be checking if the requiredParentSizeToFitBacking
is actually changed by the property (such as Width
) change. And then we can invalidate only the actually changed coordinates.
It is not directly related to the issue but I think we can make the fast-path optimization less ad-hoc by separating Invalidation.RequiredParentSizeToFit
to X and Y sizes.
I'm not against such splitting - I've thought similar with splitting autosize up in the past and would still like to do that at some point.
This is introduced by #3327. I was reading that PR and I came up with a corner test.