Skip to content

Commit 6413452

Browse files
authored
Merge pull request #378 from AhmedLSayed9/avoid_leaking_internal_focus_node_listener
Avoid dropdown internal FocusNode listener leak when replaced by an e…
2 parents 267a1cc + 3e53a90 commit 6413452

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

packages/dropdown_button2/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## UNRELEASED
2+
3+
- Avoid dropdown internal FocusNode listener leak when replaced by an external FocusNode
4+
15
## 3.0.0-beta.22
26

37
- Fix errorStyle has no effect for DropdownButtonFormField2, closes #327.

packages/dropdown_button2/lib/src/dropdown_button2.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,10 @@ class _DropdownButton2State<T> extends State<DropdownButton2<T>> with WidgetsBin
493493
super.didUpdateWidget(oldWidget);
494494
if (widget.focusNode != oldWidget.focusNode) {
495495
oldWidget.focusNode?.removeListener(_handleFocusChanged);
496+
if (_internalNode != null && widget.focusNode != null) {
497+
_internalNode!.removeListener(_handleFocusChanged);
498+
}
499+
496500
if (widget.focusNode == null) {
497501
_internalNode ??= _createFocusNode();
498502
}

0 commit comments

Comments
 (0)