From 63409a91e0f0da9aa24135db0d6e0bb6d21d9a11 Mon Sep 17 00:00:00 2001 From: Giganzo <158825920+Giganzo@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:21:59 +0200 Subject: [PATCH] Fix button down signal not emitting on first press after being disabled --- doc/classes/BaseButton.xml | 1 + scene/gui/base_button.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/doc/classes/BaseButton.xml b/doc/classes/BaseButton.xml index 1ce3284392..2554528bcc 100644 --- a/doc/classes/BaseButton.xml +++ b/doc/classes/BaseButton.xml @@ -61,6 +61,7 @@ If [code]true[/code], the button is in disabled state and can't be clicked or toggled. + [b]Note:[/b] If the button is disabled while held down, [signal button_up] will be emitted. diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index a488f76782..bf0bd6d345 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -266,6 +266,10 @@ void BaseButton::set_disabled(bool p_disabled) { } status.press_attempt = false; status.pressing_inside = false; + if (status.pressed_down_with_focus) { + status.pressed_down_with_focus = false; + emit_signal(SNAME("button_up")); + } } queue_accessibility_update(); queue_redraw();