### Godot version

v4.2.beta2.official [f8818f85e]

### System information

Windows 10, 64bit

### Issue description

Some times can't add node in visualshader editor

### Steps to reproduce

1. Open a VisualShader file for edit.
2. Click the `Add Node...` button, it will popup menu, it is OK.
3. Direct close the menu.
4. Clikd the `Add Node...` again, the menu can't popup.
![GIF](https://github.com/godotengine/godot/assets/35988767/1326c63e-3e05-4423-9ec7-7ce305b3f4f5)

### Minimal reproduction project

/
Ref<InputEventMouseButton> mb = p_event;
	VisualShader::Type type = get_current_shader_type();
	Ref<VisualShaderNode> selected_vsnode;
	
	if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::RIGHT) {
		selected_constants.clear();
		selected_parameters.clear();
		selected_comment = -1;
		selected_float_constant = -1;
		List<int> selected_closable_graph_elements;
		for (int i = 0; i < graph->get_child_count(); i++) {
			GraphElement *graph_element = Object::cast_to<GraphElement>(graph->get_child(i));
			if (graph_element && graph_element->is_selected()) {
				int id = String(graph_element->get_name()).to_int();
				Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, id);
				if (!vsnode->is_closable()) {
					continue;
				}
				selected_closable_graph_elements.push_back(id);
				Ref<VisualShaderNode> node = visual_shader->get_node(type, id);
				selected_vsnode = node;
				VisualShaderNodeComment *frame_node = Object::cast_to<VisualShaderNodeComment>(node.ptr());
				if (frame_node != nullptr) {
					selected_comment = id;
				}
				VisualShaderNodeConstant *constant_node = Object::cast_to<VisualShaderNodeConstant>(node.ptr());