@@ -122,7 +122,6 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
122
122
123
123
bool get enabled => widget.enabled && (_formBuilderState? .enabled ?? true );
124
124
125
- bool get _ownsFocusNode => widget.focusNode == null ;
126
125
late FocusNode effectiveFocusNode;
127
126
128
127
@override
@@ -133,7 +132,7 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
133
132
// Set the initial value
134
133
_formBuilderState? .registerField (widget.name, this );
135
134
136
- effectiveFocusNode = widget.focusNode ?? FocusNode ();
135
+ effectiveFocusNode = widget.focusNode ?? FocusNode (debugLabel : widget.name );
137
136
// Register a touch handler
138
137
effectiveFocusNode.addListener (_touchedHandler);
139
138
}
@@ -143,19 +142,14 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
143
142
super .didUpdateWidget (oldWidget);
144
143
if (widget.focusNode != oldWidget.focusNode) {
145
144
effectiveFocusNode.removeListener (_touchedHandler);
146
- if (oldWidget.focusNode == null ) {
147
- effectiveFocusNode.dispose ();
148
- }
149
145
effectiveFocusNode = widget.focusNode ?? FocusNode ();
146
+ effectiveFocusNode.addListener (_touchedHandler);
150
147
}
151
148
}
152
149
153
150
@override
154
151
void dispose () {
155
152
effectiveFocusNode.removeListener (_touchedHandler);
156
- if (_ownsFocusNode) {
157
- effectiveFocusNode.dispose ();
158
- }
159
153
_formBuilderState? .unregisterField (widget.name, this );
160
154
super .dispose ();
161
155
}
0 commit comments