瀏覽代碼

close all parent PopupMenus fix

Alexander Holland 10 年之前
父節點
當前提交
cff2509ecd
共有 1 個文件被更改,包括 9 次插入1 次删除
  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();
 
 }