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();