@@ -4080,6 +4080,12 @@ void VisualShaderEditor::_show_members_dialog(bool at_mouse_pos, VisualShaderNod
4080
4080
saved_node_pos_dirty = false;
4081
4081
members_dialog->set_position(graph->get_screen_position() + Point2(5 * EDSCALE, 65 * EDSCALE));
4082
4082
}
4083
+
4084
+ if (members_dialog->is_visible()) {
4085
+ members_dialog->grab_focus();
4086
+ return;
4087
+ }
4088
+
4083
4089
members_dialog->popup();
4084
4090
4085
4091
// Keep dialog within window bounds.
@@ -5384,6 +5390,7 @@ VisualShaderEditor::VisualShaderEditor() {
5384
5390
preview_window = memnew(Window);
5385
5391
preview_window->set_title(TTR("Generated Shader Code"));
5386
5392
preview_window->set_visible(preview_showed);
5393
+ preview_window->set_exclusive(true);
5387
5394
preview_window->connect("close_requested", callable_mp(this, &VisualShaderEditor::_preview_close_requested));
5388
5395
preview_window->connect("size_changed", callable_mp(this, &VisualShaderEditor::_preview_size_changed));
5389
5396
add_child(preview_window);
@@ -5485,7 +5492,7 @@ VisualShaderEditor::VisualShaderEditor() {
5485
5492
5486
5493
members_dialog = memnew(ConfirmationDialog);
5487
5494
members_dialog->set_title(TTR("Create Shader Node"));
5488
- members_dialog->set_exclusive(false );
5495
+ members_dialog->set_exclusive(true );
5489
5496
members_dialog->add_child(members_vb);
5490
5497
members_dialog->set_ok_button_text(TTR("Create"));
5491
5498
members_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_member_create));
@@ -5497,7 +5504,7 @@ VisualShaderEditor::VisualShaderEditor() {
5497
5504
{
5498
5505
add_varying_dialog = memnew(ConfirmationDialog);
5499
5506
add_varying_dialog->set_title(TTR("Create Shader Varying"));
5500
- add_varying_dialog->set_exclusive(false );
5507
+ add_varying_dialog->set_exclusive(true );
5501
5508
add_varying_dialog->set_ok_button_text(TTR("Create"));
5502
5509
add_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_create));
5503
5510
add_varying_dialog->get_ok_button()->set_disabled(true);
@@ -5543,7 +5550,7 @@ VisualShaderEditor::VisualShaderEditor() {
5543
5550
{
5544
5551
remove_varying_dialog = memnew(ConfirmationDialog);
5545
5552
remove_varying_dialog->set_title(TTR("Delete Shader Varying"));
5546
- remove_varying_dialog->set_exclusive(false );
5553
+ remove_varying_dialog->set_exclusive(true );
5547
5554
remove_varying_dialog->set_ok_button_text(TTR("Delete"));
5548
5555
remove_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_deleted));
5549
5556
add_child(remove_varying_dialog);
0 commit comments