fix: selection race condition (#1194)

* fix: guard debounced desktop selection update

Avoid dereferencing a cleared selection from the delayed
macOS metrics callback and add a regression test that
covers the stale-timer path.

* chore: clean up analyzer warnings

Remove redundant default arguments in tests and apply the
missing trailing comma required by the current lint rules.
This commit is contained in:
Lucas 2026-03-31 17:33:40 +08:00 • committed by GitHub
commit 6fbe7ba442
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -81,7 +81,13 @@ class _DesktopSelectionServiceWidgetState
Debounce.debounce(
'didChangeMetrics - update selection ',
const Duration(milliseconds: 100),
() => updateSelection(currentSelection.value!),
() {
final selection = currentSelection.value;
if (!mounted || selection == null) {
return;
}
updateSelection(selection);
},
);
}
}