Usually signals are emitted last, once everything is done. Is there some reason to do this first? Does canvas need to call fixContainerSize() first because restoreScroll() and applyDetailedTransform() are done? If so, please add a comment. Otherwise move the signal emission behind.