1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Fix button down signal not emitting on first press after being disabled

This commit is contained in:
Giganzo
2025-07-24 00:21:59 +02:00
parent 71a9948157
commit 63409a91e0
2 changed files with 5 additions and 0 deletions

View File

@@ -61,6 +61,7 @@
</member> </member>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false" keywords="enabled"> <member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false" keywords="enabled">
If [code]true[/code], the button is in disabled state and can't be clicked or toggled. 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.
</member> </member>
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="2" /> <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="2" />
<member name="keep_pressed_outside" type="bool" setter="set_keep_pressed_outside" getter="is_keep_pressed_outside" default="false"> <member name="keep_pressed_outside" type="bool" setter="set_keep_pressed_outside" getter="is_keep_pressed_outside" default="false">

View File

@@ -266,6 +266,10 @@ void BaseButton::set_disabled(bool p_disabled) {
} }
status.press_attempt = false; status.press_attempt = false;
status.pressing_inside = 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_accessibility_update();
queue_redraw(); queue_redraw();