Selaa lähdekoodia

Merge pull request #87249 from bruvzg/macos_menu_clear

[macOS] Do not unbind PopupMenu from global menu on `clear` call.
Rémi Verschelde 1 vuosi sitten
vanhempi
commit
04eafd557f
1 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 3 2
      scene/gui/popup_menu.cpp

+ 3 - 2
scene/gui/popup_menu.cpp

@@ -2424,7 +2424,8 @@ void PopupMenu::clear(bool p_free_submenus) {
 	}
 
 	if (!global_menu_name.is_empty()) {
-		for (int i = 0; i < items.size(); i++) {
+		DisplayServer *ds = DisplayServer::get_singleton();
+		for (int i = items.size() - 1; i >= 0; i--) {
 			Item &item = items.write[i];
 			if (!item.submenu.is_empty()) {
 				PopupMenu *pm = Object::cast_to<PopupMenu>(get_node_or_null(item.submenu));
@@ -2433,8 +2434,8 @@ void PopupMenu::clear(bool p_free_submenus) {
 				}
 				item.submenu_bound = false;
 			}
+			ds->global_menu_remove_item(global_menu_name, i);
 		}
-		DisplayServer::get_singleton()->global_menu_clear(global_menu_name);
 	}
 	items.clear();