Browse Source

Merge pull request #92489 from kleonc/control-invalidate-global-transform-before-notifying-resize

Invalidate `Control` global transform before notifying about resize / rect change
Rémi Verschelde 1 year ago
parent
commit
adbc4b086b
1 changed files with 7 additions and 4 deletions
  1. 7 4
      scene/gui/control.cpp

+ 7 - 4
scene/gui/control.cpp

@@ -1739,12 +1739,15 @@ void Control::_size_changed() {
 	data.size_cache = new_size_cache;
 
 	if (is_inside_tree()) {
-		if (size_changed) {
-			notification(NOTIFICATION_RESIZED);
-		}
 		if (pos_changed || size_changed) {
-			item_rect_changed(size_changed);
+			// Ensure global transform is marked as dirty before `NOTIFICATION_RESIZED` / `item_rect_changed` signal
+			// so an up to date global transform could be obtained when handling these.
 			_notify_transform();
+
+			if (size_changed) {
+				notification(NOTIFICATION_RESIZED);
+			}
+			item_rect_changed(size_changed);
 		}
 
 		if (pos_changed && !size_changed) {