فهرست منبع

Merge pull request #84151 from YeldhamDev/that_was_not_a_resize_you_dunce

Fix `NOTIFICATION_WM_SIZE_CHANGED` firing if the size hasn't changed
Rémi Verschelde 1 سال پیش
والد
کامیت
957378a69e
2فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  1. 4 1
      scene/main/window.cpp
  2. 1 0
      scene/main/window.h

+ 4 - 1
scene/main/window.cpp

@@ -1160,7 +1160,10 @@ void Window::_update_viewport_size() {
 		}
 	}
 
-	notification(NOTIFICATION_WM_SIZE_CHANGED);
+	if (old_size != size) {
+		old_size = size;
+		notification(NOTIFICATION_WM_SIZE_CHANGED);
+	}
 
 	if (embedder) {
 		embedder->_sub_window_update(this);

+ 1 - 0
scene/main/window.h

@@ -117,6 +117,7 @@ private:
 	mutable Size2i size = Size2i(DEFAULT_WINDOW_SIZE, DEFAULT_WINDOW_SIZE);
 	mutable Size2i min_size;
 	mutable Size2i max_size;
+	mutable Size2i old_size = size;
 	mutable Vector<Vector2> mpath;
 	mutable Mode mode = MODE_WINDOWED;
 	mutable bool flags[FLAG_MAX] = {};