Compare commits

..

3 Commits

Author SHA1 Message Date
Muyuan Li (from Dev Box)
f9679b937d Address review: handle NavigationFailed gracefully without rethrowing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-14 16:20:42 +08:00
copilot-swe-agent[bot]
36300d3c75 Fix NullReferenceException in Frame_NavigationFailed when e.Exception is null
Agent-Logs-Url: https://github.com/microsoft/PowerToys/sessions/af982aa1-504b-47f1-9ec0-93b29602b2af

Co-authored-by: MuyuanMS <116717757+MuyuanMS@users.noreply.github.com>
2026-04-29 08:49:32 +00:00
copilot-swe-agent[bot]
1cde68ae04 Initial plan 2026-04-29 08:48:31 +00:00
6 changed files with 13 additions and 22 deletions

View File

@@ -39,7 +39,6 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests
[DataTestMethod]
[DataRow("test")]
[DataRow("[10,10]")] // '[10,10]' is interpreted as array by mages engine
[DataRow("sqrt(-1)")] // sqrt(-1) returns a complex number which is not supported
public void Interpret_NoResult_WhenCalled(string input)
{
// Arrange

View File

@@ -43,7 +43,6 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests
[DataRow("10+(8*9)/0*7", "Expression contains division by zero")]
[DataRow("10+(8*9)/0x00", "Expression contains division by zero")]
[DataRow("10+(8*9)/0b0", "Expression contains division by zero")]
[DataRow("=sqrt(-1)", "Result is a complex number")]
public void ErrorResultOnInvalidKeywordQuery(string typedString, string expectedResult)
{
Query expectedQuery = new(typedString, "=");

View File

@@ -5,7 +5,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Numerics;
using System.Text.RegularExpressions;
using Mages.Core;
@@ -123,12 +122,6 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
return Properties.Resources.wox_plugin_calculator_double_array_returned;
}
if (result is Complex)
{
// Result is a complex number (e.g. sqrt(-1))
return Properties.Resources.wox_plugin_calculator_complex_number_result;
}
return result;
}
}

View File

@@ -69,15 +69,6 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Result is a complex number.
/// </summary>
public static string wox_plugin_calculator_complex_number_result {
get {
return ResourceManager.GetString("wox_plugin_calculator_complex_number_result", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Copy failed, please try later.
/// </summary>

View File

@@ -158,9 +158,6 @@
<value>Ignores your system setting and returns numbers in the format '{0}'.</value>
<comment>{0} is a placeholder and will be replaced in code.</comment>
</data>
<data name="wox_plugin_calculator_complex_number_result" xml:space="preserve">
<value>Result is a complex number</value>
</data>
<data name="wox_plugin_calculator_division_by_zero" xml:space="preserve">
<value>Expression contains division by zero</value>
</data>

View File

@@ -9,6 +9,7 @@ using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
using ManagedCommon;
using Microsoft.PowerToys.Settings.UI.Helpers;
using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.Library.Helpers;
@@ -135,7 +136,18 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
private void Frame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
throw e.Exception;
var sourcePage = e.SourcePageType?.FullName ?? "<unknown>";
if (e.Exception is null)
{
Logger.LogWarning($"Navigation to '{sourcePage}' failed without an exception.");
}
else
{
Logger.LogError($"Navigation to '{sourcePage}' failed.", e.Exception);
}
e.Handled = true;
}
private void Frame_Navigated(object sender, NavigationEventArgs e)