Fix a circular re-layout when Admin Dashboard widgets change size.
Review Request #10784 — Created Nov. 4, 2019 and updated
Sometimes when the Admin Dashboard positions or updates widgets, it can
result in the widget triggering a
sizeChangedevent, which would then
cause another layout. This resulted in a potential infinite loop, which
The solution to this is to only cause a re-layout if the widget actually
did change size, and not just when it claimed to. This takes advantage
of the existing widget size tracking, preventing unnecessary
updateSize()calls in response to a layout change.
Verified the infinite loops I was triggering had disappeared.
Unit tests passed.