CmdPal: Prevent some SearchText bouncing. (#41165)

This stops us from raising a PropChanged(SearchText) in DynamicListPage
when we're the ones to set it.

When we'd raise the PropChanged in response to a `set`, it could cause a
race between CmdPal and the extension. It was totally possible that
CmdPal could call

```
SearchText="foo";
SearchText="fool";
```

and in the extension, we'd raise the PropChanged for each of those, but
then have CmdPal handle those events out-of-order.

This seems to entirely remove all the "jiggling" that I'd notice in the
evil samples from #41158

Closes #38190
This commit is contained in:
Mike Griese 2025-08-21 05:06:14 -05:00 committed by GitHub
parent a5fe4b9e2e
commit e0a0bbffe5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View File

@ -12,7 +12,7 @@ public abstract class DynamicListPage : ListPage, IDynamicListPage
set set
{ {
var oldSearch = base.SearchText; var oldSearch = base.SearchText;
base.SearchText = value; SetSearchNoUpdate(value);
UpdateSearchText(oldSearch, value); UpdateSearchText(oldSearch, value);
} }
} }

View File

@ -105,4 +105,9 @@ public partial class ListPage : Page, IListPage
{ {
} }
} }
protected void SetSearchNoUpdate(string newSearchText)
{
_searchText = newSearchText;
}
} }