Skip to content

Commit 63409a9

Browse files
committed
Fix button down signal not emitting on first press after being disabled
1 parent 71a9948 commit 63409a9

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

doc/classes/BaseButton.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
</member>
6262
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false" keywords="enabled">
6363
If [code]true[/code], the button is in disabled state and can't be clicked or toggled.
64+
[b]Note:[/b] If the button is disabled while held down, [signal button_up] will be emitted.
6465
</member>
6566
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="2" />
6667
<member name="keep_pressed_outside" type="bool" setter="set_keep_pressed_outside" getter="is_keep_pressed_outside" default="false">

scene/gui/base_button.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,10 @@ void BaseButton::set_disabled(bool p_disabled) {
266266
}
267267
status.press_attempt = false;
268268
status.pressing_inside = false;
269+
if (status.pressed_down_with_focus) {
270+
status.pressed_down_with_focus = false;
271+
emit_signal(SNAME("button_up"));
272+
}
269273
}
270274
queue_accessibility_update();
271275
queue_redraw();

0 commit comments

Comments
 (0)