Skip to content

Commit 9f3f1a7

Browse files
committed
Parameter input: change text modification logic
Previously any text change was sending the modified signal, adding too many actions to the undo/redo history (one per typed character). This was also capturing shortcuts like Ctrl-Z for undoing and sending the modified signal, thus piling to the history, not going back. Instead, send the modified signal when the line edit is submitted (enter key pressed) or when it loses focus and the text has changed. Do this for the 3 line edit nodes. https://phabricator.endlessm.com/T35566
1 parent 2516bd1 commit 9f3f1a7

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.gd

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ var option: bool = false
3131
@onready var _bool_input := %BoolInput
3232
@onready var _bool_input_option := %BoolInputOption
3333

34+
# Used to submit the text when losing focus:
35+
var _last_lineedit_submitted_text: String
36+
var _last_x_lineedit_submitted_text: String
37+
var _last_y_lineedit_submitted_text: String
38+
3439

3540
func set_raw_input(raw_input):
3641
if option:
@@ -93,6 +98,10 @@ func _ready():
9398
snap_point.block_type = block_type
9499
snap_point.variant_type = variant_type
95100

101+
_last_lineedit_submitted_text = _line_edit.text
102+
_last_x_lineedit_submitted_text = _x_line_edit.text
103+
_last_y_lineedit_submitted_text = _y_line_edit.text
104+
96105
_update_visible_input()
97106

98107

@@ -126,10 +135,36 @@ func get_string() -> String:
126135
return "%s" % input
127136

128137

129-
func _on_line_edit_text_changed(new_text):
138+
func _on_line_edit_text_submitted(new_text):
139+
_last_lineedit_submitted_text = new_text
140+
modified.emit()
141+
142+
143+
func _on_line_edit_focus_exited():
144+
if _last_lineedit_submitted_text != _line_edit.text:
145+
modified.emit()
146+
147+
148+
func _on_x_line_edit_text_submitted(new_text):
149+
_last_x_lineedit_submitted_text = new_text
130150
modified.emit()
131151

132152

153+
func _on_x_line_edit_focus_exited():
154+
if _last_x_lineedit_submitted_text != _x_line_edit.text:
155+
modified.emit()
156+
157+
158+
func _on_y_line_edit_text_submitted(new_text):
159+
_last_y_lineedit_submitted_text = new_text
160+
modified.emit()
161+
162+
163+
func _on_y_line_edit_focus_exited():
164+
if _last_y_lineedit_submitted_text != _y_line_edit.text:
165+
modified.emit()
166+
167+
133168
func _update_visible_input():
134169
if snap_point.has_snapped_block():
135170
_switch_input(null)

addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.tscn

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,16 @@ popup/item_1/id = 1
178178
[node name="SnapPoint" parent="." instance=ExtResource("2_6esp3")]
179179
unique_name_in_owner = true
180180
layout_mode = 2
181-
mouse_filter = 2
182181
block_type = 3
183182
variant_type = 4
184183

185-
[connection signal="text_changed" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_text_changed"]
184+
[connection signal="focus_exited" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_focus_exited"]
185+
[connection signal="text_submitted" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_text_submitted"]
186186
[connection signal="color_changed" from="InputSwitcher/ColorInput" to="." method="_on_color_input_color_changed"]
187187
[connection signal="item_selected" from="InputSwitcher/OptionInput" to="." method="_on_option_input_item_selected"]
188-
[connection signal="text_changed" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_line_edit_text_changed"]
189-
[connection signal="text_changed" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_line_edit_text_changed"]
188+
[connection signal="focus_exited" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_x_line_edit_focus_exited"]
189+
[connection signal="text_submitted" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_x_line_edit_text_submitted"]
190+
[connection signal="focus_exited" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_y_line_edit_focus_exited"]
191+
[connection signal="text_submitted" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_y_line_edit_text_submitted"]
190192
[connection signal="item_selected" from="InputSwitcher/BoolInput/BoolInputOption" to="." method="_on_option_input_item_selected"]
191193
[connection signal="snapped_block_changed" from="SnapPoint" to="." method="_on_snap_point_snapped_block_changed"]

0 commit comments

Comments
 (0)