Fix Canvas layout issue

OnPreferredSizeChanged doesn't have to be called when adding, removing
or moving child widgets, since they don't have a direct effect on the
canvas size.