瀏覽代碼

Merge pull request #113237 from Koyper/fix_popup_menu_signal_already_connected_error

[PopupMenu] Fix redundant attempts to connect popup hidden signal on submenu
Rémi Verschelde 3 周之前
父節點
當前提交
a2db180527
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      scene/gui/popup_menu.cpp

+ 2 - 2
scene/gui/popup_menu.cpp

@@ -1924,7 +1924,7 @@ void PopupMenu::add_submenu_node_item(const String &p_label, PopupMenu *p_submen
 		RID submenu_rid = p_submenu->bind_global_menu();
 		RID submenu_rid = p_submenu->bind_global_menu();
 		nmenu->set_item_submenu(global_menu, index, submenu_rid);
 		nmenu->set_item_submenu(global_menu, index, submenu_rid);
 		items.write[index].submenu_bound = true;
 		items.write[index].submenu_bound = true;
-	} else {
+	} else if (!p_submenu->is_connected("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden))) {
 		p_submenu->connect("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden));
 		p_submenu->connect("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden));
 	}
 	}
 
 
@@ -2221,7 +2221,7 @@ void PopupMenu::set_item_submenu_node(int p_idx, PopupMenu *p_submenu) {
 			NativeMenu::get_singleton()->set_item_submenu(global_menu, p_idx, submenu_rid);
 			NativeMenu::get_singleton()->set_item_submenu(global_menu, p_idx, submenu_rid);
 			items.write[p_idx].submenu_bound = true;
 			items.write[p_idx].submenu_bound = true;
 		}
 		}
-	} else {
+	} else if (!p_submenu->is_connected("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden))) {
 		p_submenu->connect("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden));
 		p_submenu->connect("popup_hide", callable_mp(this, &PopupMenu::_submenu_hidden));
 	}
 	}
 	control->queue_redraw();
 	control->queue_redraw();