Jelajahi Sumber

close all parent PopupMenus fix

Alexander Holland 10 tahun lalu
induk
melakukan
cff2509ecd
1 mengubah file dengan 9 tambahan dan 1 penghapusan
  1. 9 1
      scene/gui/popup_menu.cpp

+ 9 - 1
scene/gui/popup_menu.cpp

@@ -738,10 +738,18 @@ int PopupMenu::find_item_by_accelerator(uint32_t p_accel) const {
 
 void PopupMenu::activate_item(int p_item) {
 
-
 	ERR_FAIL_INDEX(p_item,items.size());
 	ERR_FAIL_COND(items[p_item].separator);
 	emit_signal("item_pressed",items[p_item].ID);
+
+	//hide all parent PopupMenue's
+	Node *next = get_parent();
+	PopupMenu *pop = next->cast_to<PopupMenu>();
+	while (pop) {
+		pop->hide();
+		next = next->get_parent();
+		pop = next->cast_to<PopupMenu>();
+	}
 	hide();
 
 }