From 3d0daf15e1d759d07a3c97e888882a79cdb74c43 Mon Sep 17 00:00:00 2001 From: Jared <61185509+J4RH@users.noreply.github.com> Date: Sat, 4 Oct 2025 21:30:04 +1300 Subject: [PATCH] Add visibility check in color_picker.cpp Check that the Color Picker Popup is currently visible inside the tree before resetting the color and emitting popup_closed. --- scene/gui/color_picker.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index 3034c5f2c76..cb1a28a24c1 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -2442,12 +2442,14 @@ void ColorPickerButton::_color_changed(const Color &p_color) { } void ColorPickerButton::_modal_closed() { - if (Input::get_singleton()->is_action_just_pressed(SNAME("ui_cancel"))) { - set_pick_color(picker->get_old_color()); - emit_signal(SNAME("color_changed"), color); + if (picker->is_visible_in_tree()) { + if (Input::get_singleton()->is_action_just_pressed(SNAME("ui_cancel"))) { + set_pick_color(picker->get_old_color()); + emit_signal(SNAME("color_changed"), color); + } + emit_signal(SNAME("popup_closed")); + set_pressed(false); } - emit_signal(SNAME("popup_closed")); - set_pressed(false); if (!get_tree()->get_root()->is_embedding_subwindows()) { get_viewport()->set_disable_input(false); }