mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 19:57:57 +01:00
[Settings][PTRun]Fix crash on empty additional options number box (#32832)
* add NaN check to PluginOption ViewModel * fix spelling * fix spelling * Update PluginAdditionalOptionViewModel.cs
This commit is contained in:
@@ -105,7 +105,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
|||||||
get => _additionalOption.NumberValue;
|
get => _additionalOption.NumberValue;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value != _additionalOption.NumberValue)
|
if (double.IsNaN(value))
|
||||||
|
{
|
||||||
|
// If the user clears the NumberBox and presses enter or moves focus away then `value` converted to double results in `double.NaN`. This crashes the settings app. (https://github.com/microsoft/PowerToys/issues/32738#issuecomment-2105983967)
|
||||||
|
// To prevent the crash and provide a nice user experience we reset the NumberBox to the last valid value. This happens by sending a `NotifyPropertyChanged()` command and let the NumberBox reload its value.
|
||||||
|
// (Yes we could use 0, but this needs additional code for checking 0 against min and max.
|
||||||
|
// And yes we could also use the min value of the NumberBox, but this is not user friendly as the minimum value of NumberBox can be `double.MinValue`.)
|
||||||
|
NotifyPropertyChanged();
|
||||||
|
}
|
||||||
|
else if (value != _additionalOption.NumberValue)
|
||||||
{
|
{
|
||||||
_additionalOption.NumberValue = value;
|
_additionalOption.NumberValue = value;
|
||||||
NotifyPropertyChanged();
|
NotifyPropertyChanged();
|
||||||
|
|||||||
Reference in New Issue
Block a user