From 7af3c5febfe1877aba59f55bb31a756d32a69df0 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sat, 19 Jul 2025 20:26:33 +0800
Subject: [PATCH 01/24] Upgrade NuGet dependency
---
Flow.Launcher.Core/Flow.Launcher.Core.csproj | 6 +-
Flow.Launcher.Core/packages.lock.json | 126 +--
.../Flow.Launcher.Infrastructure.csproj | 14 +-
Flow.Launcher.Infrastructure/Win32Helper.cs | 10 +-
.../packages.lock.json | 100 +--
.../Flow.Launcher.Plugin.csproj | 8 +-
Flow.Launcher.Plugin/packages.lock.json | 52 +-
Flow.Launcher.Test/Flow.Launcher.Test.csproj | 6 +-
Flow.Launcher/Flow.Launcher.csproj | 15 +-
Flow.Launcher/packages.lock.json | 725 +++++++++++-------
...low.Launcher.Plugin.BrowserBookmark.csproj | 2 +-
.../Flow.Launcher.Plugin.Explorer.csproj | 5 +-
.../Flow.Launcher.Plugin.ProcessKiller.csproj | 2 +-
.../ProcessHelper.cs | 15 +-
.../Flow.Launcher.Plugin.Program.csproj | 4 +-
.../Programs/ShellLocalization.cs | 44 +-
.../Flow.Launcher.Plugin.Sys.csproj | 2 +-
17 files changed, 685 insertions(+), 451 deletions(-)
diff --git a/Flow.Launcher.Core/Flow.Launcher.Core.csproj b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
index b31793450..527950061 100644
--- a/Flow.Launcher.Core/Flow.Launcher.Core.csproj
+++ b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
@@ -55,12 +55,12 @@
-
-
+
+
-
+
diff --git a/Flow.Launcher.Core/packages.lock.json b/Flow.Launcher.Core/packages.lock.json
index 0c513951b..067c704af 100644
--- a/Flow.Launcher.Core/packages.lock.json
+++ b/Flow.Launcher.Core/packages.lock.json
@@ -13,15 +13,15 @@
},
"FSharp.Core": {
"type": "Direct",
- "requested": "[9.0.101, )",
- "resolved": "9.0.101",
- "contentHash": "3/YR1SDWFA+Ojx9HiBwND+0UR8ZWoeZfkhD0DWAPCDdr/YI+CyFkArmMGzGSyPXeYtjG0sy0emzfyNwjt7zhig=="
+ "requested": "[9.0.300, )",
+ "resolved": "9.0.300",
+ "contentHash": "TVt2J7RCE1KCS2IaONF+p8/KIZ1eHNbW+7qmKF6hGoD4tXl+o07ja1mPtFjMqRa5uHMFaTrGTPn/m945WnDLiQ=="
},
"Meziantou.Framework.Win32.Jobs": {
"type": "Direct",
- "requested": "[3.4.0, )",
- "resolved": "3.4.0",
- "contentHash": "5GGLckfpwoC1jznInEYfK2INrHyD7K1RtwZJ98kNPKBU6jeu24i4zfgDGHHfb+eK3J+eFPAxo0aYcbUxNXIbNw=="
+ "requested": "[3.4.3, )",
+ "resolved": "3.4.3",
+ "contentHash": "REjInKnQ0OrhjjtSMPQtLtdURctCroB4L8Sd2gjTOYDysklvsdnrStx1tHS7uLv+fSyFF3aazZmo5Ka0v1oz/w=="
},
"Microsoft.IO.RecyclableMemoryStream": {
"type": "Direct",
@@ -29,6 +29,12 @@
"resolved": "3.0.1",
"contentHash": "s/s20YTVY9r9TPfTrN5g8zPF1YhwxyqO6PxUkrYTGI2B+OGPe9AdajWZrLhFqXIvqIW23fnUE4+ztrUWNU1+9g=="
},
+ "SemanticVersioning": {
+ "type": "Direct",
+ "requested": "[3.0.0, )",
+ "resolved": "3.0.0",
+ "contentHash": "RR+8GbPQ/gjDqov/1QN1OPoUlbUruNwcL3WjWCeLw+MY7+od/ENhnkYxCfAC6rQLIu3QifaJt3kPYyP3RumqMQ=="
+ },
"squirrel.windows": {
"type": "Direct",
"requested": "[1.5.2, )",
@@ -42,16 +48,15 @@
},
"StreamJsonRpc": {
"type": "Direct",
- "requested": "[2.20.20, )",
- "resolved": "2.20.20",
- "contentHash": "gwG7KViLbSWS7EI0kYevinVmIga9wZNrpSY/FnWyC6DbdjKJ1xlv/FV1L9b0rLkVP8cGxfIMexdvo/+2W5eq6Q==",
+ "requested": "[2.22.11, )",
+ "resolved": "2.22.11",
+ "contentHash": "TQcqBFswLNpdSJANjhxZmIIe0Yl0kGqzjZ+uHLdhrkxntofvNu6C53XPEEYQ3Wkj8AorKumkuv/VMvTH4BHOZw==",
"dependencies": {
- "MessagePack": "2.5.187",
- "Microsoft.VisualStudio.Threading": "17.10.48",
- "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48",
+ "MessagePack": "2.5.192",
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
"Microsoft.VisualStudio.Validation": "17.8.8",
- "Nerdbank.Streams": "2.11.74",
- "Newtonsoft.Json": "13.0.1",
+ "Nerdbank.Streams": "2.12.87",
+ "Newtonsoft.Json": "13.0.3",
"System.IO.Pipelines": "8.0.0"
}
},
@@ -65,8 +70,8 @@
},
"BitFaster.Caching": {
"type": "Transitive",
- "resolved": "2.5.3",
- "contentHash": "Vo/39qcam5Xe+DbyfH0JZyqPswdOoa7jv4PGtRJ6Wj8AU+aZ+TuJRlJcIe+MQjRTJwliI8k8VSQpN8sEoBIv2g=="
+ "resolved": "2.5.4",
+ "contentHash": "1QroTY1PVCZOSG9FnkkCrmCKk/+bZCgI/YXq376HnYwUDJ4Ho0EaV4YaA/5v5WYLnwIwIO7RZkdWbg9pxIpueQ=="
},
"CommunityToolkit.Mvvm": {
"type": "Transitive",
@@ -85,36 +90,36 @@
},
"MemoryPack": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "cwCtED8y400vMWx/Vp0QCSeEpVFjDU4JwF52VX9WTaqVERUvNqjG9n6osFlmFuytegyXnHvYEu1qRJ8rv/rkbg==",
+ "resolved": "1.21.4",
+ "contentHash": "wy3JTBNBsO8LfQcBvvYsWr3lm2Oakolrfu0UQ3oSJSEiD+7ye0GUhYTaXuYYBowqsXBXWD9gf2218ae0JRiYVQ==",
"dependencies": {
- "MemoryPack.Core": "1.21.3",
- "MemoryPack.Generator": "1.21.3"
+ "MemoryPack.Core": "1.21.4",
+ "MemoryPack.Generator": "1.21.4"
}
},
"MemoryPack.Core": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "ajrYoBWT2aKeH4tlY8q/1C9qK1R/NK+7FkuVOX58ebOSxkABoFTqCR7W+Zk2rakUHZiEgNdRqO67hiRZPq6fLA=="
+ "resolved": "1.21.4",
+ "contentHash": "6RszGorZ0ejNmp37ZcboPBMvvPCuNW2jlrdQfcs/lMzE5b3pmPF6hsm/laDc34hRlbAST1ZxaX/DvYu2DF5sBQ=="
},
"MemoryPack.Generator": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "hYU0TAIarDKnbkNIWvb7P4zBUL+CTahkuNkczsKvycSMR5kiwQ4IfLexywNKX3s05Izp4gzDSPbueepNWZRpWA=="
+ "resolved": "1.21.4",
+ "contentHash": "g14EsSS85yn0lHTi0J9ivqlZMf09A2iI51fmI+0KkzIzyCbWOBWPi5mdaY7YWmXprk12aYh9u/qfWHQUYthlwg=="
},
"MessagePack": {
"type": "Transitive",
- "resolved": "2.5.187",
- "contentHash": "uW4j8m4Nc+2Mk5n6arOChavJ9bLjkis0qWASOj2h2OwmfINuzYv+mjCHUymrYhmyyKTu3N+ObtTXAY4uQ7jIhg==",
+ "resolved": "2.5.192",
+ "contentHash": "Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==",
"dependencies": {
- "MessagePack.Annotations": "2.5.187",
+ "MessagePack.Annotations": "2.5.192",
"Microsoft.NET.StringTools": "17.6.3"
}
},
"MessagePack.Annotations": {
"type": "Transitive",
- "resolved": "2.5.187",
- "contentHash": "/IvvMMS8opvlHjEJ/fR2Cal4Co726Kj77Z8KiohFhuHfLHHmb9uUxW5+tSCL4ToKFfkQlrS3HD638mRq83ySqA=="
+ "resolved": "2.5.192",
+ "contentHash": "jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg=="
},
"Microsoft.NET.StringTools": {
"type": "Transitive",
@@ -123,17 +128,26 @@
},
"Microsoft.VisualStudio.Threading": {
"type": "Transitive",
- "resolved": "17.12.19",
- "contentHash": "eLiGMkMYyaSguqHs3lsrFxy3tAWSLuPEL2pIWRcADMDVAs2xqm3dr1d9QYjiEusTgiClF9KD6OB2NdZP72Oy0Q==",
+ "resolved": "17.14.15",
+ "contentHash": "1DrCusT3xNLSlaJg77BsUSAzrhjdZBAvvsS0PMzyPM+fGais6SnISOhqdZQop8VVMIBLsYm2gyF9W7THjgavwA==",
"dependencies": {
- "Microsoft.VisualStudio.Threading.Analyzers": "17.12.19",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.14.15",
+ "Microsoft.VisualStudio.Threading.Only": "17.14.15",
"Microsoft.VisualStudio.Validation": "17.8.8"
}
},
"Microsoft.VisualStudio.Threading.Analyzers": {
"type": "Transitive",
- "resolved": "17.12.19",
- "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ=="
+ "resolved": "17.14.15",
+ "contentHash": "mXQPJsbuUD2ydq4/ffd8h8tSOFCXec+2xJOVNCvXjuMOq/+5EKHq3D2m2MC2+nUaXeFMSt66VS/J4HdKBixgcw=="
+ },
+ "Microsoft.VisualStudio.Threading.Only": {
+ "type": "Transitive",
+ "resolved": "17.14.15",
+ "contentHash": "NqONyw1RXyj9P3k5e1uU2k9kc1ptwuU5NJQzG+MPq7vQVHUzBY8HLuJf/N2Rw5H/myD96CVxziDxmjawPuzntw==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
},
"Microsoft.VisualStudio.Validation": {
"type": "Transitive",
@@ -142,8 +156,8 @@
},
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
- "resolved": "9.0.2",
- "contentHash": "5BkGZ6mHp2dHydR29sb0fDfAuqkv30AHtTih8wMzvPZysOmBFvHfnkR2w3tsc0pSiIg8ZoKyefJXWy9r3pBh0w=="
+ "resolved": "9.0.7",
+ "contentHash": "lFGY2aGgmMREPJEfOmZcA6v0CLjWVpcfNHRgqYMoSQhy80+GxhYqdW5xe+DCLrVqE1M7/0RpOkIo49/KH/cd/A=="
},
"Mono.Cecil": {
"type": "Transitive",
@@ -152,31 +166,28 @@
},
"Nerdbank.Streams": {
"type": "Transitive",
- "resolved": "2.11.74",
- "contentHash": "r4G7uHHfoo8LCilPOdtf2C+Q5ymHOAXtciT4ZtB2xRlAvv4gPkWBYNAijFblStv3+uidp81j5DP11jMZl4BfJw==",
+ "resolved": "2.12.87",
+ "contentHash": "oDKOeKZ865I5X8qmU3IXMyrAnssYEiYWTobPGdrqubN3RtTzEHIv+D6fwhdcfrdhPJzHjCkK/ORztR/IsnmA6g==",
"dependencies": {
- "Microsoft.VisualStudio.Threading": "17.10.48",
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
"Microsoft.VisualStudio.Validation": "17.8.8",
"System.IO.Pipelines": "8.0.0"
}
},
"Newtonsoft.Json": {
"type": "Transitive",
- "resolved": "13.0.1",
- "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
"NLog": {
"type": "Transitive",
"resolved": "4.7.10",
"contentHash": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow=="
},
- "PropertyChanged.Fody": {
+ "SharpVectors.Wpf": {
"type": "Transitive",
- "resolved": "3.4.0",
- "contentHash": "IAZyq0uolKo2WYm4mjx+q7A8fSGFT0x2e1s3y+ODn4JI0kqTDoo9GF2tdaypUzRFJZfdMxfC5HZW9QzdJLtOnA==",
- "dependencies": {
- "Fody": "6.5.1"
- }
+ "resolved": "1.8.4.2",
+ "contentHash": "PNxLkMBJnV8A+6yH9OqOlhLJegvWP/dvh0rAJp2l0kcrR+rB4R2tQ9vhUqka+UilH4atN8T6zvjDOizVyfz2Ng=="
},
"Splat": {
"type": "Transitive",
@@ -185,10 +196,10 @@
},
"System.Drawing.Common": {
"type": "Transitive",
- "resolved": "9.0.2",
- "contentHash": "JU947wzf8JbBS16Y5EIZzAlyQU+k68D7LRx6y03s2wlhlvLqkt/8uPBrjv2hJnnaJKbdb0GhQ3JZsfYXhrRjyg==",
+ "resolved": "9.0.7",
+ "contentHash": "1k/Pk7hcM3vP2tfIRRS2ECCCN7ya+hvocsM1JMc4ZDCU6qw7yOuUmqmCDfgXZ4Q4FS6jass2EAai5ByKodDi0g==",
"dependencies": {
- "Microsoft.Win32.SystemEvents": "9.0.2"
+ "Microsoft.Win32.SystemEvents": "9.0.7"
}
},
"System.IO.Pipelines": {
@@ -215,22 +226,21 @@
"type": "Project",
"dependencies": {
"Ben.Demystifier": "[0.4.1, )",
- "BitFaster.Caching": "[2.5.3, )",
+ "BitFaster.Caching": "[2.5.4, )",
"CommunityToolkit.Mvvm": "[8.4.0, )",
- "Flow.Launcher.Plugin": "[4.4.0, )",
- "MemoryPack": "[1.21.3, )",
- "Microsoft.VisualStudio.Threading": "[17.12.19, )",
+ "Flow.Launcher.Plugin": "[4.7.0, )",
+ "MemoryPack": "[1.21.4, )",
+ "Microsoft.VisualStudio.Threading": "[17.14.15, )",
"NLog": "[4.7.10, )",
- "PropertyChanged.Fody": "[3.4.0, )",
- "System.Drawing.Common": "[9.0.2, )",
+ "SharpVectors.Wpf": "[1.8.4.2, )",
+ "System.Drawing.Common": "[9.0.7, )",
"ToolGood.Words.Pinyin": "[3.0.1.4, )"
}
},
"flow.launcher.plugin": {
"type": "Project",
"dependencies": {
- "JetBrains.Annotations": "[2024.3.0, )",
- "PropertyChanged.Fody": "[3.4.0, )"
+ "JetBrains.Annotations": "[2024.3.0, )"
}
}
}
diff --git a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
index be9e4e0f9..dd9a305a2 100644
--- a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
+++ b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
@@ -1,4 +1,4 @@
-
+
net9.0-windows
@@ -54,24 +54,24 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
-
+
diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs
index 32ed31137..57c41181b 100644
--- a/Flow.Launcher.Infrastructure/Win32Helper.cs
+++ b/Flow.Launcher.Infrastructure/Win32Helper.cs
@@ -118,9 +118,9 @@ namespace Flow.Launcher.Infrastructure
#region Window Foreground
- public static nint GetForegroundWindow()
+ public static unsafe nint GetForegroundWindow()
{
- return PInvoke.GetForegroundWindow().Value;
+ return (nint)PInvoke.GetForegroundWindow().Value;
}
public static bool SetForegroundWindow(Window window)
@@ -279,7 +279,7 @@ namespace Flow.Launcher.Infrastructure
{
var hWndDesktop = PInvoke.FindWindowEx(hWnd, HWND.Null, "SHELLDLL_DefView", null);
hWndDesktop = PInvoke.FindWindowEx(hWndDesktop, HWND.Null, "SysListView32", "FolderView");
- if (hWndDesktop.Value != IntPtr.Zero)
+ if (hWndDesktop != HWND.Null)
{
return false;
}
@@ -480,7 +480,7 @@ namespace Flow.Launcher.Infrastructure
/// Restores the previously backed-up keyboard layout.
/// If it wasn't backed up or has already been restored, this method does nothing.
///
- public static void RestorePreviousKeyboardLayout()
+ public unsafe static void RestorePreviousKeyboardLayout()
{
if (_previousLayout == HKL.Null) return;
@@ -491,7 +491,7 @@ namespace Flow.Launcher.Infrastructure
hwnd,
PInvoke.WM_INPUTLANGCHANGEREQUEST,
PInvoke.INPUTLANGCHANGE_FORWARD,
- _previousLayout.Value
+ new LPARAM((nint)_previousLayout.Value)
);
_previousLayout = HKL.Null;
diff --git a/Flow.Launcher.Infrastructure/packages.lock.json b/Flow.Launcher.Infrastructure/packages.lock.json
index f38f91ef9..47c87f1ca 100644
--- a/Flow.Launcher.Infrastructure/packages.lock.json
+++ b/Flow.Launcher.Infrastructure/packages.lock.json
@@ -13,9 +13,9 @@
},
"BitFaster.Caching": {
"type": "Direct",
- "requested": "[2.5.3, )",
- "resolved": "2.5.3",
- "contentHash": "Vo/39qcam5Xe+DbyfH0JZyqPswdOoa7jv4PGtRJ6Wj8AU+aZ+TuJRlJcIe+MQjRTJwliI8k8VSQpN8sEoBIv2g=="
+ "requested": "[2.5.4, )",
+ "resolved": "2.5.4",
+ "contentHash": "1QroTY1PVCZOSG9FnkkCrmCKk/+bZCgI/YXq376HnYwUDJ4Ho0EaV4YaA/5v5WYLnwIwIO7RZkdWbg9pxIpueQ=="
},
"CommunityToolkit.Mvvm": {
"type": "Direct",
@@ -25,39 +25,40 @@
},
"Fody": {
"type": "Direct",
- "requested": "[6.5.5, )",
- "resolved": "6.5.5",
- "contentHash": "Krca41L/PDva1VsmDec5n52cQZxQAQp/bsHdzsNi8iLLI0lqKL94fNIkNaC8tVolUkCyWsbzvxfxJCeD2789fA=="
+ "requested": "[6.9.2, )",
+ "resolved": "6.9.2",
+ "contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w=="
},
"MemoryPack": {
"type": "Direct",
- "requested": "[1.21.3, )",
- "resolved": "1.21.3",
- "contentHash": "cwCtED8y400vMWx/Vp0QCSeEpVFjDU4JwF52VX9WTaqVERUvNqjG9n6osFlmFuytegyXnHvYEu1qRJ8rv/rkbg==",
+ "requested": "[1.21.4, )",
+ "resolved": "1.21.4",
+ "contentHash": "wy3JTBNBsO8LfQcBvvYsWr3lm2Oakolrfu0UQ3oSJSEiD+7ye0GUhYTaXuYYBowqsXBXWD9gf2218ae0JRiYVQ==",
"dependencies": {
- "MemoryPack.Core": "1.21.3",
- "MemoryPack.Generator": "1.21.3"
+ "MemoryPack.Core": "1.21.4",
+ "MemoryPack.Generator": "1.21.4"
}
},
"Microsoft.VisualStudio.Threading": {
"type": "Direct",
- "requested": "[17.12.19, )",
- "resolved": "17.12.19",
- "contentHash": "eLiGMkMYyaSguqHs3lsrFxy3tAWSLuPEL2pIWRcADMDVAs2xqm3dr1d9QYjiEusTgiClF9KD6OB2NdZP72Oy0Q==",
+ "requested": "[17.14.15, )",
+ "resolved": "17.14.15",
+ "contentHash": "1DrCusT3xNLSlaJg77BsUSAzrhjdZBAvvsS0PMzyPM+fGais6SnISOhqdZQop8VVMIBLsYm2gyF9W7THjgavwA==",
"dependencies": {
- "Microsoft.VisualStudio.Threading.Analyzers": "17.12.19",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.14.15",
+ "Microsoft.VisualStudio.Threading.Only": "17.14.15",
"Microsoft.VisualStudio.Validation": "17.8.8"
}
},
"Microsoft.Windows.CsWin32": {
"type": "Direct",
- "requested": "[0.3.106, )",
- "resolved": "0.3.106",
- "contentHash": "Mx5fK7uN6fwLR4wUghs6//HonAnwPBNmC2oonyJVhCUlHS/r6SUS3NkBc3+gaQiv+0/9bqdj1oSCKQFkNI+21Q==",
+ "requested": "[0.3.183, )",
+ "resolved": "0.3.183",
+ "contentHash": "Ze3aE2y7xgzKxEWtNb4SH0CExXpCHr3sbmwnvMiWMzJhWDX/G4Rs5wgg2UNs3VN+qVHh/DkDWLCPaVQv/b//Nw==",
"dependencies": {
"Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview",
- "Microsoft.Windows.WDK.Win32Metadata": "0.11.4-experimental"
+ "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview",
+ "Microsoft.Windows.WDK.Win32Metadata": "0.12.8-experimental"
}
},
"NLog": {
@@ -68,20 +69,26 @@
},
"PropertyChanged.Fody": {
"type": "Direct",
- "requested": "[3.4.0, )",
- "resolved": "3.4.0",
- "contentHash": "IAZyq0uolKo2WYm4mjx+q7A8fSGFT0x2e1s3y+ODn4JI0kqTDoo9GF2tdaypUzRFJZfdMxfC5HZW9QzdJLtOnA==",
+ "requested": "[4.1.0, )",
+ "resolved": "4.1.0",
+ "contentHash": "6v+f9cI8YjnZH2WBHuOqWEAo8DFFNGFIdU8xD3AsL6fhV6Y8oAmVWd7XKk49t8DpeUBwhR/X+97+6Epvek0Y3A==",
"dependencies": {
- "Fody": "6.5.1"
+ "Fody": "6.6.4"
}
},
+ "SharpVectors.Wpf": {
+ "type": "Direct",
+ "requested": "[1.8.4.2, )",
+ "resolved": "1.8.4.2",
+ "contentHash": "PNxLkMBJnV8A+6yH9OqOlhLJegvWP/dvh0rAJp2l0kcrR+rB4R2tQ9vhUqka+UilH4atN8T6zvjDOizVyfz2Ng=="
+ },
"System.Drawing.Common": {
"type": "Direct",
- "requested": "[9.0.2, )",
- "resolved": "9.0.2",
- "contentHash": "JU947wzf8JbBS16Y5EIZzAlyQU+k68D7LRx6y03s2wlhlvLqkt/8uPBrjv2hJnnaJKbdb0GhQ3JZsfYXhrRjyg==",
+ "requested": "[9.0.7, )",
+ "resolved": "9.0.7",
+ "contentHash": "1k/Pk7hcM3vP2tfIRRS2ECCCN7ya+hvocsM1JMc4ZDCU6qw7yOuUmqmCDfgXZ4Q4FS6jass2EAai5ByKodDi0g==",
"dependencies": {
- "Microsoft.Win32.SystemEvents": "9.0.2"
+ "Microsoft.Win32.SystemEvents": "9.0.7"
}
},
"ToolGood.Words.Pinyin": {
@@ -97,18 +104,26 @@
},
"MemoryPack.Core": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "ajrYoBWT2aKeH4tlY8q/1C9qK1R/NK+7FkuVOX58ebOSxkABoFTqCR7W+Zk2rakUHZiEgNdRqO67hiRZPq6fLA=="
+ "resolved": "1.21.4",
+ "contentHash": "6RszGorZ0ejNmp37ZcboPBMvvPCuNW2jlrdQfcs/lMzE5b3pmPF6hsm/laDc34hRlbAST1ZxaX/DvYu2DF5sBQ=="
},
"MemoryPack.Generator": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "hYU0TAIarDKnbkNIWvb7P4zBUL+CTahkuNkczsKvycSMR5kiwQ4IfLexywNKX3s05Izp4gzDSPbueepNWZRpWA=="
+ "resolved": "1.21.4",
+ "contentHash": "g14EsSS85yn0lHTi0J9ivqlZMf09A2iI51fmI+0KkzIzyCbWOBWPi5mdaY7YWmXprk12aYh9u/qfWHQUYthlwg=="
},
"Microsoft.VisualStudio.Threading.Analyzers": {
"type": "Transitive",
- "resolved": "17.12.19",
- "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ=="
+ "resolved": "17.14.15",
+ "contentHash": "mXQPJsbuUD2ydq4/ffd8h8tSOFCXec+2xJOVNCvXjuMOq/+5EKHq3D2m2MC2+nUaXeFMSt66VS/J4HdKBixgcw=="
+ },
+ "Microsoft.VisualStudio.Threading.Only": {
+ "type": "Transitive",
+ "resolved": "17.14.15",
+ "contentHash": "NqONyw1RXyj9P3k5e1uU2k9kc1ptwuU5NJQzG+MPq7vQVHUzBY8HLuJf/N2Rw5H/myD96CVxziDxmjawPuzntw==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
},
"Microsoft.VisualStudio.Validation": {
"type": "Transitive",
@@ -117,8 +132,8 @@
},
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
- "resolved": "9.0.2",
- "contentHash": "5BkGZ6mHp2dHydR29sb0fDfAuqkv30AHtTih8wMzvPZysOmBFvHfnkR2w3tsc0pSiIg8ZoKyefJXWy9r3pBh0w=="
+ "resolved": "9.0.7",
+ "contentHash": "lFGY2aGgmMREPJEfOmZcA6v0CLjWVpcfNHRgqYMoSQhy80+GxhYqdW5xe+DCLrVqE1M7/0RpOkIo49/KH/cd/A=="
},
"Microsoft.Windows.SDK.Win32Docs": {
"type": "Transitive",
@@ -127,15 +142,15 @@
},
"Microsoft.Windows.SDK.Win32Metadata": {
"type": "Transitive",
- "resolved": "60.0.34-preview",
- "contentHash": "TA3DUNi4CTeo+ItTXBnGZFt2159XOGSl0UOlG5vjDj4WHqZjhwYyyUnzOtrbCERiSaP2Hzg7otJNWwOSZgutyA=="
+ "resolved": "61.0.15-preview",
+ "contentHash": "cysex3dazKtCPALCluC2XX3f5Aedy9H2pw5jb+TW5uas2rkem1Z7FRnbUrg2vKx0pk0Qz+4EJNr37HdYTEcvEQ=="
},
"Microsoft.Windows.WDK.Win32Metadata": {
"type": "Transitive",
- "resolved": "0.11.4-experimental",
- "contentHash": "bf5MCmUyZf0gBlYQjx9UpRAZWBkRndyt9XicR+UNLvAUAFTZQbu6YaX/sNKZlR98Grn0gydfh/yT4I3vc0AIQA==",
+ "resolved": "0.12.8-experimental",
+ "contentHash": "3n8R44/Z96Ly+ty4eYVJfESqbzvpw96lRLs3zOzyDmr1x1Kw7FNn5CyE416q+bZQV3e1HRuMUvyegMeRE/WedA==",
"dependencies": {
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview"
+ "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview"
}
},
"System.Reflection.Metadata": {
@@ -146,8 +161,7 @@
"flow.launcher.plugin": {
"type": "Project",
"dependencies": {
- "JetBrains.Annotations": "[2024.3.0, )",
- "PropertyChanged.Fody": "[3.4.0, )"
+ "JetBrains.Annotations": "[2024.3.0, )"
}
}
}
diff --git a/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj b/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj
index a4ef39ac3..eee8d5f4e 100644
--- a/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj
+++ b/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj
@@ -68,17 +68,17 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
diff --git a/Flow.Launcher.Plugin/packages.lock.json b/Flow.Launcher.Plugin/packages.lock.json
index 6cdf96e07..af835c598 100644
--- a/Flow.Launcher.Plugin/packages.lock.json
+++ b/Flow.Launcher.Plugin/packages.lock.json
@@ -4,9 +4,9 @@
"net9.0-windows7.0": {
"Fody": {
"type": "Direct",
- "requested": "[6.5.4, )",
- "resolved": "6.5.4",
- "contentHash": "GXZuti428IZctfby10xkMbWLCibcb6s29I/psLbBoO2vHJI5eTNVybnlV/Wi1tlIu9GG0bgW/PQwMH+MCldHxw=="
+ "requested": "[6.9.2, )",
+ "resolved": "6.9.2",
+ "contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w=="
},
"JetBrains.Annotations": {
"type": "Direct",
@@ -16,43 +16,43 @@
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
- "requested": "[1.1.1, )",
- "resolved": "1.1.1",
- "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
+ "requested": "[8.0.0, )",
+ "resolved": "8.0.0",
+ "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "1.1.1",
- "Microsoft.SourceLink.Common": "1.1.1"
+ "Microsoft.Build.Tasks.Git": "8.0.0",
+ "Microsoft.SourceLink.Common": "8.0.0"
}
},
"Microsoft.Windows.CsWin32": {
"type": "Direct",
- "requested": "[0.3.106, )",
- "resolved": "0.3.106",
- "contentHash": "Mx5fK7uN6fwLR4wUghs6//HonAnwPBNmC2oonyJVhCUlHS/r6SUS3NkBc3+gaQiv+0/9bqdj1oSCKQFkNI+21Q==",
+ "requested": "[0.3.183, )",
+ "resolved": "0.3.183",
+ "contentHash": "Ze3aE2y7xgzKxEWtNb4SH0CExXpCHr3sbmwnvMiWMzJhWDX/G4Rs5wgg2UNs3VN+qVHh/DkDWLCPaVQv/b//Nw==",
"dependencies": {
"Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview",
- "Microsoft.Windows.WDK.Win32Metadata": "0.11.4-experimental"
+ "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview",
+ "Microsoft.Windows.WDK.Win32Metadata": "0.12.8-experimental"
}
},
"PropertyChanged.Fody": {
"type": "Direct",
- "requested": "[3.4.0, )",
- "resolved": "3.4.0",
- "contentHash": "IAZyq0uolKo2WYm4mjx+q7A8fSGFT0x2e1s3y+ODn4JI0kqTDoo9GF2tdaypUzRFJZfdMxfC5HZW9QzdJLtOnA==",
+ "requested": "[4.1.0, )",
+ "resolved": "4.1.0",
+ "contentHash": "6v+f9cI8YjnZH2WBHuOqWEAo8DFFNGFIdU8xD3AsL6fhV6Y8oAmVWd7XKk49t8DpeUBwhR/X+97+6Epvek0Y3A==",
"dependencies": {
- "Fody": "6.5.1"
+ "Fody": "6.6.4"
}
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "1.1.1",
- "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q=="
+ "resolved": "8.0.0",
+ "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "1.1.1",
- "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
+ "resolved": "8.0.0",
+ "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
},
"Microsoft.Windows.SDK.Win32Docs": {
"type": "Transitive",
@@ -61,15 +61,15 @@
},
"Microsoft.Windows.SDK.Win32Metadata": {
"type": "Transitive",
- "resolved": "60.0.34-preview",
- "contentHash": "TA3DUNi4CTeo+ItTXBnGZFt2159XOGSl0UOlG5vjDj4WHqZjhwYyyUnzOtrbCERiSaP2Hzg7otJNWwOSZgutyA=="
+ "resolved": "61.0.15-preview",
+ "contentHash": "cysex3dazKtCPALCluC2XX3f5Aedy9H2pw5jb+TW5uas2rkem1Z7FRnbUrg2vKx0pk0Qz+4EJNr37HdYTEcvEQ=="
},
"Microsoft.Windows.WDK.Win32Metadata": {
"type": "Transitive",
- "resolved": "0.11.4-experimental",
- "contentHash": "bf5MCmUyZf0gBlYQjx9UpRAZWBkRndyt9XicR+UNLvAUAFTZQbu6YaX/sNKZlR98Grn0gydfh/yT4I3vc0AIQA==",
+ "resolved": "0.12.8-experimental",
+ "contentHash": "3n8R44/Z96Ly+ty4eYVJfESqbzvpw96lRLs3zOzyDmr1x1Kw7FNn5CyE416q+bZQV3e1HRuMUvyegMeRE/WedA==",
"dependencies": {
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview"
+ "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview"
}
}
}
diff --git a/Flow.Launcher.Test/Flow.Launcher.Test.csproj b/Flow.Launcher.Test/Flow.Launcher.Test.csproj
index f04a9dcc9..33479c5a0 100644
--- a/Flow.Launcher.Test/Flow.Launcher.Test.csproj
+++ b/Flow.Launcher.Test/Flow.Launcher.Test.csproj
@@ -48,13 +48,13 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
\ No newline at end of file
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index f438859f2..d14055831 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -86,7 +86,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -96,20 +96,19 @@
-
-
-
+
+
-
+
-
+
all
-
-
+
+
diff --git a/Flow.Launcher/packages.lock.json b/Flow.Launcher/packages.lock.json
index 017065044..344f06d3a 100644
--- a/Flow.Launcher/packages.lock.json
+++ b/Flow.Launcher/packages.lock.json
@@ -16,9 +16,9 @@
},
"Fody": {
"type": "Direct",
- "requested": "[6.5.4, )",
- "resolved": "6.5.4",
- "contentHash": "GXZuti428IZctfby10xkMbWLCibcb6s29I/psLbBoO2vHJI5eTNVybnlV/Wi1tlIu9GG0bgW/PQwMH+MCldHxw=="
+ "requested": "[6.9.2, )",
+ "resolved": "6.9.2",
+ "contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w=="
},
"InputSimulator": {
"type": "Direct",
@@ -26,54 +26,92 @@
"resolved": "1.0.4",
"contentHash": "D0LvRCPQMX6/FJHBjng+RO+wRDuHTJrfo7IAc7rmkPvRqchdVGJWg3y70peOtDy3OLNK+HSOwVkH4GiuLnkKgA=="
},
- "Jack251970.TaskScheduler": {
+ "MdXaml": {
"type": "Direct",
- "requested": "[2.12.1, )",
- "resolved": "2.12.1",
- "contentHash": "+epAtsLMugiznJCNRYCYB6eBcr+bx+CVlwPWMprO5CbnNkWu9mlSV8XN5BQJrGYwmlAtlGfZA3p3PcFFlrgR6A==",
+ "requested": "[1.27.0, )",
+ "resolved": "1.27.0",
+ "contentHash": "VWhqhCeKVkJe8vkPmXuGZlRX01WDrTugOLeUvJn18jH/8DrGGVBvtgIlJoELHD2f1DiEWqF3lxxjV55vnzE7Tg==",
"dependencies": {
- "Microsoft.Win32.Registry": "5.0.0",
- "System.Diagnostics.EventLog": "8.0.0",
- "System.Security.AccessControl": "6.0.1"
+ "AvalonEdit": "6.3.0.90",
+ "MdXaml.Plugins": "1.27.0"
+ }
+ },
+ "MdXaml.AnimatedGif": {
+ "type": "Direct",
+ "requested": "[1.27.0, )",
+ "resolved": "1.27.0",
+ "contentHash": "Xrr9IgyAfqDbruqCp2Wxzthbc87QMvMR2YXQsGDyacLtowleefP1Jt3cesZCbI44YcZTGjyJNIkvRAyzzlgsOQ==",
+ "dependencies": {
+ "MdXaml.Plugins": "1.27.0",
+ "WpfAnimatedGif": "2.0.2"
+ }
+ },
+ "MdXaml.Html": {
+ "type": "Direct",
+ "requested": "[1.27.0, )",
+ "resolved": "1.27.0",
+ "contentHash": "3AI0g7EwsTuvhhNd9bjb3J7v5aXFk1dLaf1CNbLjkcZs/MwnEUHNgzF+sLQBYYVdG2DqfV1BsuFoPWSG7IdHvg==",
+ "dependencies": {
+ "AvalonEdit": "6.3.0.90",
+ "HtmlAgilityPack": "1.11.42",
+ "MdXaml": "1.27.0",
+ "MdXaml.Plugins": "1.27.0"
+ }
+ },
+ "MdXaml.Plugins": {
+ "type": "Direct",
+ "requested": "[1.27.0, )",
+ "resolved": "1.27.0",
+ "contentHash": "We7LtBdoukRg9mqTfa1f5n8z/GQPMKBRj3URk9DiMuqzIHkW1lTgK5njVPSScxsRt4YzW22423tSnLWNm2MJKg=="
+ },
+ "MdXaml.Svg": {
+ "type": "Direct",
+ "requested": "[1.27.0, )",
+ "resolved": "1.27.0",
+ "contentHash": "zHtzcQrEVDoTDRvxFAccAIQG3UHCUW2cdWrGCg9yfT6344hhqc6d9t/93kBqQ6j+f580YeevtMeraz9PWmzpfw==",
+ "dependencies": {
+ "MdXaml": "1.27.0",
+ "MdXaml.Plugins": "1.27.0",
+ "Svg": "3.0.84"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Direct",
- "requested": "[7.0.0, )",
- "resolved": "7.0.0",
- "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==",
+ "requested": "[9.0.7, )",
+ "resolved": "9.0.7",
+ "contentHash": "i05AYA91vgq0as84ROVCyltD2gnxaba/f1Qw2rG7mUsS0gv8cPTr1Gm7jPQHq7JTr4MJoQUcanLVs16tIOUJaQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Hosting": {
"type": "Direct",
- "requested": "[7.0.1, )",
- "resolved": "7.0.1",
- "contentHash": "aoeMou6XSW84wiqd895OdaGyO9PfH6nohQJ0XBcshRDafbdIU6PQIVl8TpOCssPYq3ciRseP5064hbFyCR9J9w==",
+ "requested": "[9.0.7, )",
+ "resolved": "9.0.7",
+ "contentHash": "Dkv55VfitwJjPUk9mFHxT9MJAd8su7eJNaCHhBU/Y9xFqw3ZNHwrpeptXeaXiaPtfQq+alMmawIz1Impk5pHkQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Configuration.Binder": "7.0.3",
- "Microsoft.Extensions.Configuration.CommandLine": "7.0.0",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "7.0.0",
- "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0",
- "Microsoft.Extensions.Configuration.Json": "7.0.0",
- "Microsoft.Extensions.Configuration.UserSecrets": "7.0.0",
- "Microsoft.Extensions.DependencyInjection": "7.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Physical": "7.0.0",
- "Microsoft.Extensions.Hosting.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging.Configuration": "7.0.0",
- "Microsoft.Extensions.Logging.Console": "7.0.0",
- "Microsoft.Extensions.Logging.Debug": "7.0.0",
- "Microsoft.Extensions.Logging.EventLog": "7.0.0",
- "Microsoft.Extensions.Logging.EventSource": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.1",
- "System.Diagnostics.DiagnosticSource": "7.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.7",
+ "Microsoft.Extensions.Configuration.CommandLine": "9.0.7",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.7",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.7",
+ "Microsoft.Extensions.Configuration.Json": "9.0.7",
+ "Microsoft.Extensions.Configuration.UserSecrets": "9.0.7",
+ "Microsoft.Extensions.DependencyInjection": "9.0.7",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Diagnostics": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.7",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.7",
+ "Microsoft.Extensions.Logging.Console": "9.0.7",
+ "Microsoft.Extensions.Logging.Debug": "9.0.7",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.7",
+ "Microsoft.Extensions.Logging.EventSource": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7"
}
},
"Microsoft.Toolkit.Uwp.Notifications": {
@@ -88,22 +126,11 @@
"System.ValueTuple": "4.5.0"
}
},
- "Microsoft.Windows.CsWin32": {
- "type": "Direct",
- "requested": "[0.3.106, )",
- "resolved": "0.3.106",
- "contentHash": "Mx5fK7uN6fwLR4wUghs6//HonAnwPBNmC2oonyJVhCUlHS/r6SUS3NkBc3+gaQiv+0/9bqdj1oSCKQFkNI+21Q==",
- "dependencies": {
- "Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview",
- "Microsoft.Windows.WDK.Win32Metadata": "0.11.4-experimental"
- }
- },
"ModernWpfUI": {
"type": "Direct",
- "requested": "[0.9.4, )",
- "resolved": "0.9.4",
- "contentHash": "HJ07Be9KOiGKGcMLz/AwY+84h3yGHRPuYpYXCE6h1yPtaFwGMWfanZ70jX7W5XWx8+Qk1vGox+WGKgxxsy6EHw=="
+ "requested": "[0.9.5, )",
+ "resolved": "0.9.5",
+ "contentHash": "Y3XkH0wmzDUdbFglykkIIRVPVsmIqN+rKoLZFaMDh9yMG39AJ6VannEmRCzjVLn7f8pg4SqBWC0PGT49BqTACA=="
},
"NHotkey.Wpf": {
"type": "Direct",
@@ -116,11 +143,11 @@
},
"PropertyChanged.Fody": {
"type": "Direct",
- "requested": "[3.4.0, )",
- "resolved": "3.4.0",
- "contentHash": "IAZyq0uolKo2WYm4mjx+q7A8fSGFT0x2e1s3y+ODn4JI0kqTDoo9GF2tdaypUzRFJZfdMxfC5HZW9QzdJLtOnA==",
+ "requested": "[4.1.0, )",
+ "resolved": "4.1.0",
+ "contentHash": "6v+f9cI8YjnZH2WBHuOqWEAo8DFFNGFIdU8xD3AsL6fhV6Y8oAmVWd7XKk49t8DpeUBwhR/X+97+6Epvek0Y3A==",
"dependencies": {
- "Fody": "6.5.1"
+ "Fody": "6.6.4"
}
},
"SemanticVersioning": {
@@ -129,11 +156,27 @@
"resolved": "3.0.0",
"contentHash": "RR+8GbPQ/gjDqov/1QN1OPoUlbUruNwcL3WjWCeLw+MY7+od/ENhnkYxCfAC6rQLIu3QifaJt3kPYyP3RumqMQ=="
},
+ "TaskScheduler": {
+ "type": "Direct",
+ "requested": "[2.12.2, )",
+ "resolved": "2.12.2",
+ "contentHash": "glpAb3VrwfdAofp6PIyAzL0ZeTV7XUJ8muu0oZoTeyU5jtk2sMJ6QAMRRuFbovcaj+SBJiEUGklxIWOqQoxshA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "System.Diagnostics.EventLog": "9.0.2",
+ "System.Security.AccessControl": "6.0.1"
+ }
+ },
"VirtualizingWrapPanel": {
"type": "Direct",
- "requested": "[2.1.1, )",
- "resolved": "2.1.1",
- "contentHash": "Fc/yjU8jqC3qpIsNxeO5RjK2lPU7xnJtBLMSQ6L9egA2PyJLQeVeXpG8WBb5N1kN15rlJEYG8dHWJ5qUGgaNrg=="
+ "requested": "[2.3.0, )",
+ "resolved": "2.3.0",
+ "contentHash": "Dpmtcpn2HqAWZR0NkN7Qd4YCjf+sdQcemIMKm2suZVbOIB9NsmKZnYaQDIpXWTh87a9+nArVto6Od1cM2ohzCQ=="
+ },
+ "AvalonEdit": {
+ "type": "Transitive",
+ "resolved": "6.3.0.90",
+ "contentHash": "WVTb5MxwGqKdeasd3nG5udlV4t6OpvkFanziwI133K0/QJ5FvZmfzRQgpAjGTJhQfIA8GP7AzKQ3sTY9JOFk8Q=="
},
"Ben.Demystifier": {
"type": "Transitive",
@@ -145,8 +188,8 @@
},
"BitFaster.Caching": {
"type": "Transitive",
- "resolved": "2.5.3",
- "contentHash": "Vo/39qcam5Xe+DbyfH0JZyqPswdOoa7jv4PGtRJ6Wj8AU+aZ+TuJRlJcIe+MQjRTJwliI8k8VSQpN8sEoBIv2g=="
+ "resolved": "2.5.4",
+ "contentHash": "1QroTY1PVCZOSG9FnkkCrmCKk/+bZCgI/YXq376HnYwUDJ4Ho0EaV4YaA/5v5WYLnwIwIO7RZkdWbg9pxIpueQ=="
},
"DeltaCompressionDotNet": {
"type": "Transitive",
@@ -161,10 +204,20 @@
"YamlDotNet": "9.1.0"
}
},
+ "Fizzler": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "jH8KFyDJtgqLl3jZwbwgR3nA9dyebKPBgLwBx0bjPvxvvoCqHPD5IPedRGYzki8RYFpjxCFMlLtnNFPYq2OgmQ=="
+ },
"FSharp.Core": {
"type": "Transitive",
- "resolved": "9.0.101",
- "contentHash": "3/YR1SDWFA+Ojx9HiBwND+0UR8ZWoeZfkhD0DWAPCDdr/YI+CyFkArmMGzGSyPXeYtjG0sy0emzfyNwjt7zhig=="
+ "resolved": "9.0.300",
+ "contentHash": "TVt2J7RCE1KCS2IaONF+p8/KIZ1eHNbW+7qmKF6hGoD4tXl+o07ja1mPtFjMqRa5uHMFaTrGTPn/m945WnDLiQ=="
+ },
+ "HtmlAgilityPack": {
+ "type": "Transitive",
+ "resolved": "1.11.42",
+ "contentHash": "LDc1bEfF14EY2DZzak4xvzWvbpNXK3vi1u0KQbBpLUN4+cx/VrvXhgCAMSJhSU5vz0oMfW9JZIR20vj/PkDHPA=="
},
"JetBrains.Annotations": {
"type": "Transitive",
@@ -173,262 +226,282 @@
},
"MemoryPack": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "cwCtED8y400vMWx/Vp0QCSeEpVFjDU4JwF52VX9WTaqVERUvNqjG9n6osFlmFuytegyXnHvYEu1qRJ8rv/rkbg==",
+ "resolved": "1.21.4",
+ "contentHash": "wy3JTBNBsO8LfQcBvvYsWr3lm2Oakolrfu0UQ3oSJSEiD+7ye0GUhYTaXuYYBowqsXBXWD9gf2218ae0JRiYVQ==",
"dependencies": {
- "MemoryPack.Core": "1.21.3",
- "MemoryPack.Generator": "1.21.3"
+ "MemoryPack.Core": "1.21.4",
+ "MemoryPack.Generator": "1.21.4"
}
},
"MemoryPack.Core": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "ajrYoBWT2aKeH4tlY8q/1C9qK1R/NK+7FkuVOX58ebOSxkABoFTqCR7W+Zk2rakUHZiEgNdRqO67hiRZPq6fLA=="
+ "resolved": "1.21.4",
+ "contentHash": "6RszGorZ0ejNmp37ZcboPBMvvPCuNW2jlrdQfcs/lMzE5b3pmPF6hsm/laDc34hRlbAST1ZxaX/DvYu2DF5sBQ=="
},
"MemoryPack.Generator": {
"type": "Transitive",
- "resolved": "1.21.3",
- "contentHash": "hYU0TAIarDKnbkNIWvb7P4zBUL+CTahkuNkczsKvycSMR5kiwQ4IfLexywNKX3s05Izp4gzDSPbueepNWZRpWA=="
+ "resolved": "1.21.4",
+ "contentHash": "g14EsSS85yn0lHTi0J9ivqlZMf09A2iI51fmI+0KkzIzyCbWOBWPi5mdaY7YWmXprk12aYh9u/qfWHQUYthlwg=="
},
"MessagePack": {
"type": "Transitive",
- "resolved": "2.5.187",
- "contentHash": "uW4j8m4Nc+2Mk5n6arOChavJ9bLjkis0qWASOj2h2OwmfINuzYv+mjCHUymrYhmyyKTu3N+ObtTXAY4uQ7jIhg==",
+ "resolved": "2.5.192",
+ "contentHash": "Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==",
"dependencies": {
- "MessagePack.Annotations": "2.5.187",
+ "MessagePack.Annotations": "2.5.192",
"Microsoft.NET.StringTools": "17.6.3"
}
},
"MessagePack.Annotations": {
"type": "Transitive",
- "resolved": "2.5.187",
- "contentHash": "/IvvMMS8opvlHjEJ/fR2Cal4Co726Kj77Z8KiohFhuHfLHHmb9uUxW5+tSCL4ToKFfkQlrS3HD638mRq83ySqA=="
+ "resolved": "2.5.192",
+ "contentHash": "jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg=="
},
"Meziantou.Framework.Win32.Jobs": {
"type": "Transitive",
- "resolved": "3.4.0",
- "contentHash": "5GGLckfpwoC1jznInEYfK2INrHyD7K1RtwZJ98kNPKBU6jeu24i4zfgDGHHfb+eK3J+eFPAxo0aYcbUxNXIbNw=="
+ "resolved": "3.4.3",
+ "contentHash": "REjInKnQ0OrhjjtSMPQtLtdURctCroB4L8Sd2gjTOYDysklvsdnrStx1tHS7uLv+fSyFF3aazZmo5Ka0v1oz/w=="
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==",
+ "resolved": "9.0.7",
+ "contentHash": "oxGR51+w5cXm5B9gU6XwpAB2sTiyPSmZm7hjvv0rzRnmL5o/KZzE103AuQj7sK26OBupjVzU/bZxDWvvU4nhEg==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==",
+ "resolved": "9.0.7",
+ "contentHash": "lut/kiVvNsQ120VERMUYSFhpXPpKjjql+giy03LesASPBBcC0o6+aoFdzJH9GaYpFTQ3fGVhVjKjvJDoAW5/IQ==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
- "resolved": "7.0.3",
- "contentHash": "1eRFwJBrkkncTpvh6mivB8zg4uBVm6+Y6stEJERrVEqZZc8Hvf+N1iIgj2ySYDUQko4J1Gw1rLf1M8bG83F0eA==",
+ "resolved": "9.0.7",
+ "contentHash": "ExY+zXHhU4o9KC2alp3ZdLWyVWVRSn5INqax5ABk+HEOHlAHzomhJ7ek9HHliyOMiVGoYWYaMFOGr9q59mSAGA==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.CommandLine": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "a8Iq8SCw5m8W5pZJcPCgBpBO4E89+NaObPng+ApIhrGSv9X4JPrcFAaGM4sDgR0X83uhLgsNJq8VnGP/wqhr8A==",
+ "resolved": "9.0.7",
+ "contentHash": "LqwdkMNFeRyuqExewBSaWj8roEgZH8JQ9zEAmHl5ZFcnhCvjAdHICdYVRIiSEq9RWGB731LL8kZJM8tdTKEscA==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "RIkfqCkvrAogirjsqSrG1E1FxgrLsOZU2nhRbl07lrajnxzSU2isj2lwQah0CtCbLWo/pOIukQzM1GfneBUnxA==",
+ "resolved": "9.0.7",
+ "contentHash": "R8kgazVpDr4k1K7MeWPLAwsi5VpwrhE3ubXK38D9gpHEvf9XhZhJ8kWHKK00LDg5hJ7pMQLggdZ7XFdQ5182Ug==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.FileExtensions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==",
+ "resolved": "9.0.7",
+ "contentHash": "3LVg32iMfR9ENeegXAo73L+877iOcQauLJsXlKZNVSsLA/HbPgClZdeMGdjLSkaidYw3l02XbXTlOdGYNgu91Q==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Physical": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.Json": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==",
+ "resolved": "9.0.7",
+ "contentHash": "3HQV326liEInT9UKEc+k73f1ECwNhvDS/DJAe5WvtMKDJTJqTH2ujrUC2ZlK/j6pXyPbV9f0Ku8JB20JveGImg==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
- "System.Text.Json": "7.0.0"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Configuration.UserSecrets": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "33HPW1PmB2RS0ietBQyvOxjp4O3wlt+4tIs8KPyMn1kqp04goiZGa7+3mc69NRLv6bphkLDy0YR7Uw3aZyf8Zw==",
+ "resolved": "9.0.7",
+ "contentHash": "ouDuPgRdeF4TJXKUh+lbm6QwyWwnCy+ijiqfFM2cI5NmW83MwKg1WNp2nCdMVcwQW8wJXteF/L9lA6ZPS3bCIQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Configuration.Json": "7.0.0",
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Physical": "7.0.0"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Configuration.Json": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.7"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "h3j/QfmFN4S0w4C2A6X7arXij/M/OVw3uQHSOFxnND4DyAzO1F9eMX7Eti7lU/OkSthEE0WzRsfT/Dmx86jzCw=="
+ "resolved": "9.0.7",
+ "contentHash": "iPK1FxbGFr2Xb+4Y+dTYI8Gupu9pOi8I3JPuPsrogUmEhe2hzZ9LpCmolMEBhVDo2ikcSr7G5zYiwaapHSQTew=="
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "9.0.7",
+ "contentHash": "6ykfInm6yw7pPHJACgnrPUXxUWVslFnzad44K/siXk6Ovan6fNMnXxI5X9vphHJuZ4JbMOdPIgsfTmLD+Dyxug==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.7"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.7",
+ "contentHash": "d39Ov1JpeWCGLCOTinlaDkujhrSAQ0HFxb7Su1BjhCKBfmDcQ6Ia1i3JI6kd3NFgwi1dexTunu82daDNwt7E6w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7"
+ }
},
"Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==",
+ "resolved": "9.0.7",
+ "contentHash": "y9djCca1cz/oz/J8jTxtoecNiNvaiGBJeWd7XOPxonH+FnfHqcfslJMcSr5JMinmWFyS7eh3C9L6m6oURZ5lSA==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.FileProviders.Physical": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==",
+ "resolved": "9.0.7",
+ "contentHash": "JYEPYrb+YBpFTCdmSBrk8cg3wAi1V4so7ccq04qbhg3FQHQqgJk28L3heEOKMXcZobOBUjTnGCFJD49Ez9kG5w==",
"dependencies": {
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileSystemGlobbing": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileSystemGlobbing": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.FileSystemGlobbing": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w=="
+ "resolved": "9.0.7",
+ "contentHash": "5VKpTH2ME0SSs0lrtkpKgjCeHzXR5ka/H+qThPwuWi78wHubApZ/atD7w69FDt0OOM7UMV6LIbkqEQgoby4IXA=="
},
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "43n9Je09z0p/7ViPxfRqs5BUItRLNVh5b6JH40F2Agkh2NBsY/jpNYTtbCcxrHCsA3oRmbR6RJBzUutB4VZvNQ==",
+ "resolved": "9.0.7",
+ "contentHash": "yG2JCXAR+VqI1mKqynLPNJlNlrUJeEISEpX4UznOp2uM4IEFz3pDDauzyMvTjICutEJtOigJ1yWBvxbaIlibBw==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.7",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==",
+ "resolved": "9.0.7",
+ "contentHash": "fdIeQpXYV8yxSWG03cCbU2Otdrq4NWuhnQLXokWLv3L9YcK055E7u8WFJvP+uuP4CFeCEoqZQL4yPcjuXhCZrg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "7.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw=="
+ "resolved": "9.0.7",
+ "contentHash": "sMM6NEAdUTE/elJ2wqjOi0iBWqZmSyaTByLF9e8XHv6DRJFFnOe0N+s8Uc6C91E4SboQCfLswaBIZ+9ZXA98AA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7"
+ }
},
"Microsoft.Extensions.Logging.Configuration": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "FLDA0HcffKA8ycoDQLJuCNGIE42cLWPxgdQGRBaSzZrYTkMBjnf9zrr8pGT06psLq9Q+RKWmmZczQ9bCrXEBcA==",
+ "resolved": "9.0.7",
+ "contentHash": "AEBty9rvFGvdFRqgIDEhQmiCnIfQWyzVoOZrO244cfu+n9M+wI1QLDpuROVILlplIBtLVmOezAF7d1H3Qog6Xw==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "7.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Configuration.Binder": "7.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "7.0.0"
+ "Microsoft.Extensions.Configuration": "9.0.7",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.7",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.7"
}
},
"Microsoft.Extensions.Logging.Console": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "qt5n8bHLZPUfuRnFxJKW5q9ZwOTncdh96rtWzWpX3Y/064MlxzCSw2ELF5Jlwdo+Y4wK3I47NmUTFsV7Sg8rqg==",
+ "resolved": "9.0.7",
+ "contentHash": "pEHlNa8iCfKsBFA3YVDn/8EicjSU/m8uDfyoR0i4svONDss4Yu9Kznw53E/TyI+TveTo7CwRid4kfd4pLYXBig==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging.Configuration": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0",
- "System.Text.Json": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7"
}
},
"Microsoft.Extensions.Logging.Debug": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "tFGGyPDpJ8ZdQdeckCArP7nZuoY3am9zJWuvp4OD1bHq65S0epW9BNHzAWeaIO4eYwWnGm1jRNt3vRciH8H6MA==",
+ "resolved": "9.0.7",
+ "contentHash": "MxzZj7XbsYJwfjclVTjJym2/nVIkksu7l7tC/4HYy+YRdDmpE4B+hTzCXu3BNfLNhdLPZsWpyXuYe6UGgWDm3g==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7"
}
},
"Microsoft.Extensions.Logging.EventLog": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "Rp7cYL9xQRVTgjMl77H5YDxszAaO+mlA+KT0BnLSVhuCoKQQOOs1sSK2/x8BK2dZ/lKeAC/CVF+20Ef2dpKXwg==",
+ "resolved": "9.0.7",
+ "contentHash": "usrMVsY7c8M8fESt34Y3eEIQIlRlKXfPDlI+vYEb6xT7SUjhua2ey3NpHgQktiTgz8Uo5RiWqGD8ieiyo2WaDA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0",
- "System.Diagnostics.EventLog": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7",
+ "System.Diagnostics.EventLog": "9.0.7"
}
},
"Microsoft.Extensions.Logging.EventSource": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "MxQXndQFviIyOPqyMeLNshXnmqcfzEHE2wWcr7BF1unSisJgouZ3tItnq+aJLGPojrW8OZSC/ZdRoR6wAq+c7w==",
+ "resolved": "9.0.7",
+ "contentHash": "/wwi6ckTEegCExFV6gVToCO7CvysZnmE50fpdkYUsSMh0ue9vRkQ7uOqkHyHol93ASYTEahrp+guMtS/+fZKaA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Logging": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0",
- "System.Text.Json": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Logging": "9.0.7",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "pZRDYdN1FpepOIfHU62QoBQ6zdAoTvnjxFfqAzEd9Jhb2dfhA5i6jeTdgGgcgTWFRC7oT0+3XrbQu4LjvgX1Nw==",
+ "resolved": "9.0.7",
+ "contentHash": "trJnF6cRWgR5uMmHpGoHmM1wOVFdIYlELlkO9zX+RfieK0321Y55zrcs4AaEymKup7dxgEN/uJU25CAcMNQRXw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "95UnxZkkFdXxF6vSrtJsMHCzkDeSMuUWGs2hDT54cX+U5eVajrCJ3qLyQRW+CtpTt5OJ8bmTvpQVHu1DLhH+cA==",
+ "resolved": "9.0.7",
+ "contentHash": "pE/jeAWHEIy/8HsqYA+I1+toTsdvsv+WywAcRoNSvPoFwjOREa8Fqn7D0/i0PbiXsDLFupltTTctliePx8ib4w==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
- "Microsoft.Extensions.Configuration.Binder": "7.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
- "Microsoft.Extensions.Options": "7.0.0",
- "Microsoft.Extensions.Primitives": "7.0.0"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.7",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.7",
+ "Microsoft.Extensions.Options": "9.0.7",
+ "Microsoft.Extensions.Primitives": "9.0.7"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q=="
+ "resolved": "9.0.7",
+ "contentHash": "ti/zD9BuuO50IqlvhWQs9GHxkCmoph5BHjGiWKdg2t6Or8XoyAfRJiKag+uvd/fpASnNklfsB01WpZ4fhAe0VQ=="
},
"Microsoft.IO.RecyclableMemoryStream": {
"type": "Transitive",
@@ -440,19 +513,38 @@
"resolved": "17.6.3",
"contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA=="
},
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
"Microsoft.VisualStudio.Threading": {
"type": "Transitive",
- "resolved": "17.12.19",
- "contentHash": "eLiGMkMYyaSguqHs3lsrFxy3tAWSLuPEL2pIWRcADMDVAs2xqm3dr1d9QYjiEusTgiClF9KD6OB2NdZP72Oy0Q==",
+ "resolved": "17.14.15",
+ "contentHash": "1DrCusT3xNLSlaJg77BsUSAzrhjdZBAvvsS0PMzyPM+fGais6SnISOhqdZQop8VVMIBLsYm2gyF9W7THjgavwA==",
"dependencies": {
- "Microsoft.VisualStudio.Threading.Analyzers": "17.12.19",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.14.15",
+ "Microsoft.VisualStudio.Threading.Only": "17.14.15",
"Microsoft.VisualStudio.Validation": "17.8.8"
}
},
"Microsoft.VisualStudio.Threading.Analyzers": {
"type": "Transitive",
- "resolved": "17.12.19",
- "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ=="
+ "resolved": "17.14.15",
+ "contentHash": "mXQPJsbuUD2ydq4/ffd8h8tSOFCXec+2xJOVNCvXjuMOq/+5EKHq3D2m2MC2+nUaXeFMSt66VS/J4HdKBixgcw=="
+ },
+ "Microsoft.VisualStudio.Threading.Only": {
+ "type": "Transitive",
+ "resolved": "17.14.15",
+ "contentHash": "NqONyw1RXyj9P3k5e1uU2k9kc1ptwuU5NJQzG+MPq7vQVHUzBY8HLuJf/N2Rw5H/myD96CVxziDxmjawPuzntw==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
},
"Microsoft.VisualStudio.Validation": {
"type": "Transitive",
@@ -470,26 +562,8 @@
},
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
- "resolved": "9.0.2",
- "contentHash": "5BkGZ6mHp2dHydR29sb0fDfAuqkv30AHtTih8wMzvPZysOmBFvHfnkR2w3tsc0pSiIg8ZoKyefJXWy9r3pBh0w=="
- },
- "Microsoft.Windows.SDK.Win32Docs": {
- "type": "Transitive",
- "resolved": "0.1.42-alpha",
- "contentHash": "Z/9po23gUA9aoukirh2ItMU2ZS9++Js9Gdds9fu5yuMojDrmArvY2y+tq9985tR3cxFxpZO1O35Wjfo0khj5HA=="
- },
- "Microsoft.Windows.SDK.Win32Metadata": {
- "type": "Transitive",
- "resolved": "60.0.34-preview",
- "contentHash": "TA3DUNi4CTeo+ItTXBnGZFt2159XOGSl0UOlG5vjDj4WHqZjhwYyyUnzOtrbCERiSaP2Hzg7otJNWwOSZgutyA=="
- },
- "Microsoft.Windows.WDK.Win32Metadata": {
- "type": "Transitive",
- "resolved": "0.11.4-experimental",
- "contentHash": "bf5MCmUyZf0gBlYQjx9UpRAZWBkRndyt9XicR+UNLvAUAFTZQbu6YaX/sNKZlR98Grn0gydfh/yT4I3vc0AIQA==",
- "dependencies": {
- "Microsoft.Windows.SDK.Win32Metadata": "60.0.34-preview"
- }
+ "resolved": "9.0.7",
+ "contentHash": "lFGY2aGgmMREPJEfOmZcA6v0CLjWVpcfNHRgqYMoSQhy80+GxhYqdW5xe+DCLrVqE1M7/0RpOkIo49/KH/cd/A=="
},
"Mono.Cecil": {
"type": "Transitive",
@@ -498,18 +572,18 @@
},
"Nerdbank.Streams": {
"type": "Transitive",
- "resolved": "2.11.74",
- "contentHash": "r4G7uHHfoo8LCilPOdtf2C+Q5ymHOAXtciT4ZtB2xRlAvv4gPkWBYNAijFblStv3+uidp81j5DP11jMZl4BfJw==",
+ "resolved": "2.12.87",
+ "contentHash": "oDKOeKZ865I5X8qmU3IXMyrAnssYEiYWTobPGdrqubN3RtTzEHIv+D6fwhdcfrdhPJzHjCkK/ORztR/IsnmA6g==",
"dependencies": {
- "Microsoft.VisualStudio.Threading": "17.10.48",
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
"Microsoft.VisualStudio.Validation": "17.8.8",
"System.IO.Pipelines": "8.0.0"
}
},
"Newtonsoft.Json": {
"type": "Transitive",
- "resolved": "13.0.1",
- "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
"NHotkey": {
"type": "Transitive",
@@ -521,6 +595,16 @@
"resolved": "4.7.10",
"contentHash": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow=="
},
+ "runtime.osx.10.10-x64.CoreCompat.System.Drawing": {
+ "type": "Transitive",
+ "resolved": "5.8.64",
+ "contentHash": "Ey7xQgWwixxdrmhzEUvaR4kxZDSQMWQScp8ViLvmL5xCBKG6U3TaMv/jzHilpfQXpHmJ4IylKGzzMvnYX2FwHQ=="
+ },
+ "SharpVectors.Wpf": {
+ "type": "Transitive",
+ "resolved": "1.8.4.2",
+ "contentHash": "PNxLkMBJnV8A+6yH9OqOlhLJegvWP/dvh0rAJp2l0kcrR+rB4R2tQ9vhUqka+UilH4atN8T6zvjDOizVyfz2Ng=="
+ },
"Splat": {
"type": "Transitive",
"resolved": "1.6.2",
@@ -538,34 +622,81 @@
},
"StreamJsonRpc": {
"type": "Transitive",
- "resolved": "2.20.20",
- "contentHash": "gwG7KViLbSWS7EI0kYevinVmIga9wZNrpSY/FnWyC6DbdjKJ1xlv/FV1L9b0rLkVP8cGxfIMexdvo/+2W5eq6Q==",
+ "resolved": "2.22.11",
+ "contentHash": "TQcqBFswLNpdSJANjhxZmIIe0Yl0kGqzjZ+uHLdhrkxntofvNu6C53XPEEYQ3Wkj8AorKumkuv/VMvTH4BHOZw==",
"dependencies": {
- "MessagePack": "2.5.187",
- "Microsoft.VisualStudio.Threading": "17.10.48",
- "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48",
+ "MessagePack": "2.5.192",
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
"Microsoft.VisualStudio.Validation": "17.8.8",
- "Nerdbank.Streams": "2.11.74",
- "Newtonsoft.Json": "13.0.1",
+ "Nerdbank.Streams": "2.12.87",
+ "Newtonsoft.Json": "13.0.3",
"System.IO.Pipelines": "8.0.0"
}
},
- "System.Diagnostics.DiagnosticSource": {
+ "Svg": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "T9SLFxzDp0SreCffRDXSAS5G+lq6E8qP4knHS2IBjwCdx2KEvGnGZsq7gFpselYOda7l6gXsJMD93TQsFj/URA=="
+ "resolved": "3.0.84",
+ "contentHash": "QI35/+zRerIuOTBAw0GhbEQhuesSd3nYha9ibgyv6ofe4XRpFSjaXyQJJGssaUVZaBb2vwMAFKqb5uWnTAB2Sg==",
+ "dependencies": {
+ "Fizzler": "1.1.0",
+ "System.Drawing.Common": "4.5.1",
+ "System.ObjectModel": "4.3.0",
+ "runtime.osx.10.10-x64.CoreCompat.System.Drawing": "5.8.64"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A=="
+ "resolved": "9.0.7",
+ "contentHash": "AJ+9fyCtQUImntxAJ9l4PZiCd4iepuk4pm7Qcno7PBIWQnfXlvwKuFsGk2H+QyY69GUVzDP2heELW6ho5BCXUg=="
},
"System.Drawing.Common": {
"type": "Transitive",
- "resolved": "9.0.2",
- "contentHash": "JU947wzf8JbBS16Y5EIZzAlyQU+k68D7LRx6y03s2wlhlvLqkt/8uPBrjv2hJnnaJKbdb0GhQ3JZsfYXhrRjyg==",
+ "resolved": "9.0.7",
+ "contentHash": "1k/Pk7hcM3vP2tfIRRS2ECCCN7ya+hvocsM1JMc4ZDCU6qw7yOuUmqmCDfgXZ4Q4FS6jass2EAai5ByKodDi0g==",
"dependencies": {
- "Microsoft.Win32.SystemEvents": "9.0.2"
+ "Microsoft.Win32.SystemEvents": "9.0.7"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
}
},
"System.IO.Pipelines": {
@@ -573,6 +704,30 @@
"resolved": "8.0.0",
"contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA=="
},
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
"System.Reflection.Emit": {
"type": "Transitive",
"resolved": "4.7.0",
@@ -583,6 +738,37 @@
"resolved": "5.0.0",
"contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
},
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
"System.Security.AccessControl": {
"type": "Transitive",
"resolved": "6.0.1",
@@ -593,17 +779,33 @@
"resolved": "5.0.0",
"contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
},
- "System.Text.Encodings.Web": {
+ "System.Text.Encoding": {
"type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg=="
- },
- "System.Text.Json": {
- "type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"dependencies": {
- "System.Text.Encodings.Web": "7.0.0"
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
}
},
"System.ValueTuple": {
@@ -616,6 +818,11 @@
"resolved": "3.0.1.4",
"contentHash": "uQo97618y9yzLDxrnehPN+/tuiOlk5BqieEdwctHZOAS9miMXnHKgMFYVw8CSGXRglyTYXlrW7qtUlU7Fje5Ew=="
},
+ "WpfAnimatedGif": {
+ "type": "Transitive",
+ "resolved": "2.0.2",
+ "contentHash": "B0j9SqtThyHVTiOPvu6yR+39Te0g3o+7Jjb+qEm7+Iz1HRqbE5/4QV+ntHWOYYBPOUFr9x1mdzGl/EzWP+nKiA=="
+ },
"YamlDotNet": {
"type": "Transitive",
"resolved": "9.1.0",
@@ -625,12 +832,13 @@
"type": "Project",
"dependencies": {
"Droplex": "[1.7.0, )",
- "FSharp.Core": "[9.0.101, )",
+ "FSharp.Core": "[9.0.300, )",
"Flow.Launcher.Infrastructure": "[1.0.0, )",
- "Flow.Launcher.Plugin": "[4.4.0, )",
- "Meziantou.Framework.Win32.Jobs": "[3.4.0, )",
+ "Flow.Launcher.Plugin": "[4.7.0, )",
+ "Meziantou.Framework.Win32.Jobs": "[3.4.3, )",
"Microsoft.IO.RecyclableMemoryStream": "[3.0.1, )",
- "StreamJsonRpc": "[2.20.20, )",
+ "SemanticVersioning": "[3.0.0, )",
+ "StreamJsonRpc": "[2.22.11, )",
"squirrel.windows": "[1.5.2, )"
}
},
@@ -638,22 +846,21 @@
"type": "Project",
"dependencies": {
"Ben.Demystifier": "[0.4.1, )",
- "BitFaster.Caching": "[2.5.3, )",
+ "BitFaster.Caching": "[2.5.4, )",
"CommunityToolkit.Mvvm": "[8.4.0, )",
- "Flow.Launcher.Plugin": "[4.4.0, )",
- "MemoryPack": "[1.21.3, )",
- "Microsoft.VisualStudio.Threading": "[17.12.19, )",
+ "Flow.Launcher.Plugin": "[4.7.0, )",
+ "MemoryPack": "[1.21.4, )",
+ "Microsoft.VisualStudio.Threading": "[17.14.15, )",
"NLog": "[4.7.10, )",
- "PropertyChanged.Fody": "[3.4.0, )",
- "System.Drawing.Common": "[9.0.2, )",
+ "SharpVectors.Wpf": "[1.8.4.2, )",
+ "System.Drawing.Common": "[9.0.7, )",
"ToolGood.Words.Pinyin": "[3.0.1.4, )"
}
},
"flow.launcher.plugin": {
"type": "Project",
"dependencies": {
- "JetBrains.Annotations": "[2024.3.0, )",
- "PropertyChanged.Fody": "[3.4.0, )"
+ "JetBrains.Annotations": "[2024.3.0, )"
}
}
}
diff --git a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj
index fdd41c28d..953b7a54e 100644
--- a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj
+++ b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj
@@ -96,7 +96,7 @@
-
+
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj b/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj
index ea0803978..b444fb8f6 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj
@@ -47,9 +47,8 @@
-
-
-
+
+
diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj
index cd310fb35..2da97ebbd 100644
--- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj
+++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj
@@ -52,7 +52,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/ProcessHelper.cs b/Plugins/Flow.Launcher.Plugin.ProcessKiller/ProcessHelper.cs
index 386782905..cea34f7dc 100644
--- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/ProcessHelper.cs
+++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/ProcessHelper.cs
@@ -163,23 +163,20 @@ namespace Flow.Launcher.Plugin.ProcessKiller
try
{
var handle = PInvoke.OpenProcess(PROCESS_ACCESS_RIGHTS.PROCESS_QUERY_LIMITED_INFORMATION, false, (uint)p.Id);
- if (handle.Value == IntPtr.Zero)
+ if (handle == HWND.Null)
{
return string.Empty;
}
- using var safeHandle = new SafeProcessHandle(handle.Value, true);
+ using var safeHandle = new SafeProcessHandle((nint)handle.Value, true);
uint capacity = 2000;
Span buffer = new char[capacity];
- fixed (char* pBuffer = buffer)
+ if (!PInvoke.QueryFullProcessImageName(safeHandle, PROCESS_NAME_FORMAT.PROCESS_NAME_WIN32, buffer, ref capacity))
{
- if (!PInvoke.QueryFullProcessImageName(safeHandle, PROCESS_NAME_FORMAT.PROCESS_NAME_WIN32, (PWSTR)pBuffer, ref capacity))
- {
- return string.Empty;
- }
-
- return buffer[..(int)capacity].ToString();
+ return string.Empty;
}
+
+ return buffer[..(int)capacity].ToString();
}
catch
{
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj b/Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj
index 0c45a8590..cb2b6470b 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj
+++ b/Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj
@@ -64,8 +64,8 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs
index fac3ab181..5c2f6f976 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLocalization.cs
@@ -27,28 +27,36 @@ namespace Flow.Launcher.Plugin.Program.Programs
// If there is no resource to localize a file name the method returns a non zero value.
fixed (char* bufferPtr = buffer)
{
- var result = PInvoke.SHGetLocalizedName(path, bufferPtr, capacity, out var id);
- if (result != HRESULT.S_OK)
+ int id;
+ fixed (char* pathPtr = path)
{
- return string.Empty;
- }
+ var result = PInvoke.SHGetLocalizedName(new PCWSTR(pathPtr), bufferPtr, capacity, &id);
- var resourcePathStr = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
- _ = PInvoke.ExpandEnvironmentStrings(resourcePathStr, bufferPtr, capacity);
- using var handle = PInvoke.LoadLibraryEx(resourcePathStr,
- LOAD_LIBRARY_FLAGS.DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_FLAGS.LOAD_LIBRARY_AS_DATAFILE);
- if (handle.IsInvalid)
- {
- return string.Empty;
- }
+ if (result != HRESULT.S_OK)
+ {
+ return string.Empty;
+ }
- // not sure about the behavior of Pinvoke.LoadString, so we clear the buffer before using it (so it must be a null-terminated string)
- buffer.Clear();
+ var resourcePathStr = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
+ fixed (char* resourcePathPtr = resourcePathStr)
+ {
+ _ = PInvoke.ExpandEnvironmentStrings(new PCWSTR(resourcePathPtr), bufferPtr, capacity);
+ using var handle = PInvoke.LoadLibraryEx(resourcePathStr,
+ LOAD_LIBRARY_FLAGS.DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_FLAGS.LOAD_LIBRARY_AS_DATAFILE);
+ if (handle.IsInvalid)
+ {
+ return string.Empty;
+ }
- if (PInvoke.LoadString(handle, (uint)id, bufferPtr, capacity) != 0)
- {
- var lString = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
- return lString;
+ // not sure about the behavior of Pinvoke.LoadString, so we clear the buffer before using it (so it must be a null-terminated string)
+ buffer.Clear();
+
+ if (PInvoke.LoadString(handle, (uint)id, buffer, capacity) != 0)
+ {
+ var lString = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
+ return lString;
+ }
+ }
}
}
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj b/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
index 999003fd8..cb5b3233f 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
@@ -59,7 +59,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
From 13cf4338894fc60fb1ff8b241aafafeed17e1465 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sat, 19 Jul 2025 20:37:14 +0800
Subject: [PATCH 02/24] Upgrade NLog to 6.0.1 and resolve new package
NLog.OutputDebugString
---
Flow.Launcher.Core/packages.lock.json | 15 ++++++++++++---
.../Flow.Launcher.Infrastructure.csproj | 3 ++-
Flow.Launcher.Infrastructure/packages.lock.json | 15 ++++++++++++---
Flow.Launcher/packages.lock.json | 15 ++++++++++++---
4 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/Flow.Launcher.Core/packages.lock.json b/Flow.Launcher.Core/packages.lock.json
index 067c704af..b7bc7ce0f 100644
--- a/Flow.Launcher.Core/packages.lock.json
+++ b/Flow.Launcher.Core/packages.lock.json
@@ -181,8 +181,16 @@
},
"NLog": {
"type": "Transitive",
- "resolved": "4.7.10",
- "contentHash": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow=="
+ "resolved": "6.0.1",
+ "contentHash": "qDWiqy8/xdpZKtHna/645KbalwP86N2NFJEzfqhcv+Si4V2iNaEfR/dCneuF/4+Dcwl3f7jHMXj3ndWYftV3Ug=="
+ },
+ "NLog.OutputDebugString": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "wwJCQLaHVzuRf8TsXB+EEdrzVvE3dnzCSMQMDgwkw3AXp8VSp3JSVF/Q/H0oEqggKgKhPs13hh3a7svyQr4s3A==",
+ "dependencies": {
+ "NLog": "6.0.1"
+ }
},
"SharpVectors.Wpf": {
"type": "Transitive",
@@ -231,7 +239,8 @@
"Flow.Launcher.Plugin": "[4.7.0, )",
"MemoryPack": "[1.21.4, )",
"Microsoft.VisualStudio.Threading": "[17.14.15, )",
- "NLog": "[4.7.10, )",
+ "NLog": "[6.0.1, )",
+ "NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
"System.Drawing.Common": "[9.0.7, )",
"ToolGood.Words.Pinyin": "[3.0.1.4, )"
diff --git a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
index dd9a305a2..82963fa32 100644
--- a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
+++ b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
@@ -66,7 +66,8 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
all
diff --git a/Flow.Launcher.Infrastructure/packages.lock.json b/Flow.Launcher.Infrastructure/packages.lock.json
index 47c87f1ca..152ee4877 100644
--- a/Flow.Launcher.Infrastructure/packages.lock.json
+++ b/Flow.Launcher.Infrastructure/packages.lock.json
@@ -63,9 +63,18 @@
},
"NLog": {
"type": "Direct",
- "requested": "[4.7.10, )",
- "resolved": "4.7.10",
- "contentHash": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow=="
+ "requested": "[6.0.1, )",
+ "resolved": "6.0.1",
+ "contentHash": "qDWiqy8/xdpZKtHna/645KbalwP86N2NFJEzfqhcv+Si4V2iNaEfR/dCneuF/4+Dcwl3f7jHMXj3ndWYftV3Ug=="
+ },
+ "NLog.OutputDebugString": {
+ "type": "Direct",
+ "requested": "[6.0.1, )",
+ "resolved": "6.0.1",
+ "contentHash": "wwJCQLaHVzuRf8TsXB+EEdrzVvE3dnzCSMQMDgwkw3AXp8VSp3JSVF/Q/H0oEqggKgKhPs13hh3a7svyQr4s3A==",
+ "dependencies": {
+ "NLog": "6.0.1"
+ }
},
"PropertyChanged.Fody": {
"type": "Direct",
diff --git a/Flow.Launcher/packages.lock.json b/Flow.Launcher/packages.lock.json
index 344f06d3a..3dde15f2c 100644
--- a/Flow.Launcher/packages.lock.json
+++ b/Flow.Launcher/packages.lock.json
@@ -592,8 +592,16 @@
},
"NLog": {
"type": "Transitive",
- "resolved": "4.7.10",
- "contentHash": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow=="
+ "resolved": "6.0.1",
+ "contentHash": "qDWiqy8/xdpZKtHna/645KbalwP86N2NFJEzfqhcv+Si4V2iNaEfR/dCneuF/4+Dcwl3f7jHMXj3ndWYftV3Ug=="
+ },
+ "NLog.OutputDebugString": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "wwJCQLaHVzuRf8TsXB+EEdrzVvE3dnzCSMQMDgwkw3AXp8VSp3JSVF/Q/H0oEqggKgKhPs13hh3a7svyQr4s3A==",
+ "dependencies": {
+ "NLog": "6.0.1"
+ }
},
"runtime.osx.10.10-x64.CoreCompat.System.Drawing": {
"type": "Transitive",
@@ -851,7 +859,8 @@
"Flow.Launcher.Plugin": "[4.7.0, )",
"MemoryPack": "[1.21.4, )",
"Microsoft.VisualStudio.Threading": "[17.14.15, )",
- "NLog": "[4.7.10, )",
+ "NLog": "[6.0.1, )",
+ "NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
"System.Drawing.Common": "[9.0.7, )",
"ToolGood.Words.Pinyin": "[3.0.1.4, )"
From 34cba653f866c90ca3f575902fa574ecfe7b6b5b Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 08:39:35 +0800
Subject: [PATCH 03/24] Upgrade PinYin to 3.1.0.x
---
Flow.Launcher.Core/packages.lock.json | 6 +++---
.../Flow.Launcher.Infrastructure.csproj | 4 +---
Flow.Launcher.Infrastructure/packages.lock.json | 6 +++---
Flow.Launcher/packages.lock.json | 6 +++---
4 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/Flow.Launcher.Core/packages.lock.json b/Flow.Launcher.Core/packages.lock.json
index b7bc7ce0f..dfb099166 100644
--- a/Flow.Launcher.Core/packages.lock.json
+++ b/Flow.Launcher.Core/packages.lock.json
@@ -222,8 +222,8 @@
},
"ToolGood.Words.Pinyin": {
"type": "Transitive",
- "resolved": "3.0.1.4",
- "contentHash": "uQo97618y9yzLDxrnehPN+/tuiOlk5BqieEdwctHZOAS9miMXnHKgMFYVw8CSGXRglyTYXlrW7qtUlU7Fje5Ew=="
+ "resolved": "3.1.0.3",
+ "contentHash": "VKcf8sUq/+LyY99WgLhOu7Q32ROEyR30/2xCCj9ADRi45wVC7kpXrYCf9vH1qirkmrIfpL8inoxAbrqAlfXxsQ=="
},
"YamlDotNet": {
"type": "Transitive",
@@ -243,7 +243,7 @@
"NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
"System.Drawing.Common": "[9.0.7, )",
- "ToolGood.Words.Pinyin": "[3.0.1.4, )"
+ "ToolGood.Words.Pinyin": "[3.1.0.3, )"
}
},
"flow.launcher.plugin": {
diff --git a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
index 82963fa32..81be26196 100644
--- a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
+++ b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
@@ -73,9 +73,7 @@
-
-
-
+
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/packages.lock.json b/Flow.Launcher.Infrastructure/packages.lock.json
index 152ee4877..0e830661c 100644
--- a/Flow.Launcher.Infrastructure/packages.lock.json
+++ b/Flow.Launcher.Infrastructure/packages.lock.json
@@ -102,9 +102,9 @@
},
"ToolGood.Words.Pinyin": {
"type": "Direct",
- "requested": "[3.0.1.4, )",
- "resolved": "3.0.1.4",
- "contentHash": "uQo97618y9yzLDxrnehPN+/tuiOlk5BqieEdwctHZOAS9miMXnHKgMFYVw8CSGXRglyTYXlrW7qtUlU7Fje5Ew=="
+ "requested": "[3.1.0.3, )",
+ "resolved": "3.1.0.3",
+ "contentHash": "VKcf8sUq/+LyY99WgLhOu7Q32ROEyR30/2xCCj9ADRi45wVC7kpXrYCf9vH1qirkmrIfpL8inoxAbrqAlfXxsQ=="
},
"JetBrains.Annotations": {
"type": "Transitive",
diff --git a/Flow.Launcher/packages.lock.json b/Flow.Launcher/packages.lock.json
index 3dde15f2c..591ee2a3c 100644
--- a/Flow.Launcher/packages.lock.json
+++ b/Flow.Launcher/packages.lock.json
@@ -823,8 +823,8 @@
},
"ToolGood.Words.Pinyin": {
"type": "Transitive",
- "resolved": "3.0.1.4",
- "contentHash": "uQo97618y9yzLDxrnehPN+/tuiOlk5BqieEdwctHZOAS9miMXnHKgMFYVw8CSGXRglyTYXlrW7qtUlU7Fje5Ew=="
+ "resolved": "3.1.0.3",
+ "contentHash": "VKcf8sUq/+LyY99WgLhOu7Q32ROEyR30/2xCCj9ADRi45wVC7kpXrYCf9vH1qirkmrIfpL8inoxAbrqAlfXxsQ=="
},
"WpfAnimatedGif": {
"type": "Transitive",
@@ -863,7 +863,7 @@
"NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
"System.Drawing.Common": "[9.0.7, )",
- "ToolGood.Words.Pinyin": "[3.0.1.4, )"
+ "ToolGood.Words.Pinyin": "[3.1.0.3, )"
}
},
"flow.launcher.plugin": {
From 9f63291fda08c6cee071e0d578db7110fbba07e1 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 09:35:29 +0800
Subject: [PATCH 04/24] Improve setting dialog command
---
Plugins/Flow.Launcher.Plugin.Sys/Main.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
index d2dcf6e5a..4f44c033f 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
@@ -404,6 +404,8 @@ namespace Flow.Launcher.Plugin.Sys
IcoPath = "Images\\app.png",
Action = c =>
{
+ // Hide the window first then open setting dialog because main window can be topmost window which will still display on top of the setting dialog for a while
+ _context.API.HideMainWindow();
_context.API.OpenSettingDialog();
return true;
}
From 365dd5ee17baf43a5e00d3720a81b1f048da09b2 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 09:42:32 +0800
Subject: [PATCH 05/24] Use translation for constant strings
---
Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml | 2 ++
Plugins/Flow.Launcher.Plugin.Sys/Main.cs | 8 +++-----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
index ad3f8553b..3c8e37b53 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
@@ -63,6 +63,8 @@
Are you sure you want to restart the computer?
Are you sure you want to restart the computer with Advanced Boot Options?
Are you sure you want to log off?
+ Error
+ Failed to empty the recycle bin. This might happen if:{0}- A file in the recycle bin is in use{0}- You don't have permission to delete some items{0}Please close any applications that might be using these files and try again.
Command Keyword Setting
Custom Command Keyword
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
index 4f44c033f..0b45b1524 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
@@ -338,11 +338,9 @@ namespace Flow.Launcher.Plugin.Sys
var result = PInvoke.SHEmptyRecycleBin(new(), string.Empty, 0);
if (result != HRESULT.S_OK && result != HRESULT.E_UNEXPECTED)
{
- _context.API.ShowMsgBox("Failed to empty the recycle bin. This might happen if:\n" +
- "- A file in the recycle bin is in use\n" +
- "- You don't have permission to delete some items\n" +
- "Please close any applications that might be using these files and try again.",
- "Error",
+ _context.API.ShowMsgBox(
+ string.Format(_context.API.GetTranslation("flowlauncher_plugin_sys_dlgtext_empty_recycle_bin_failed"), Environment.NewLine),
+ _context.API.GetTranslation("flowlauncher_plugin_sys_dlgtitle_error"),
MessageBoxButton.OK, MessageBoxImage.Error);
}
From 96e6882ec10bd90af9508be373d82ca2b4fd27dc Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 09:50:07 +0800
Subject: [PATCH 06/24] Improve string resource
---
Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
index 3c8e37b53..398724f67 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
@@ -64,7 +64,7 @@
Are you sure you want to restart the computer with Advanced Boot Options?
Are you sure you want to log off?
Error
- Failed to empty the recycle bin. This might happen if:{0}- A file in the recycle bin is in use{0}- You don't have permission to delete some items{0}Please close any applications that might be using these files and try again.
+ Failed to empty the recycle bin. This might happen if:{0}- Some items are currently in use{0}- Some items can't be deleted due to permission{0}Please close any applications that might be using these files and try again.
Command Keyword Setting
Custom Command Keyword
From b6ecfdcf638b13b63bb4ebb901a56fd32309cb31 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 09:58:30 +0800
Subject: [PATCH 07/24] Remove project reference in Sys plugin to
Flow.Launcher.Infrastructure
---
Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs | 12 ++++++++++
Flow.Launcher/PublicAPIInstance.cs | 4 ++++
.../Flow.Launcher.Plugin.Sys.csproj | 1 -
Plugins/Flow.Launcher.Plugin.Sys/Main.cs | 22 +++++++++----------
4 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
index cfa813d3f..0238bdc1d 100644
--- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
+++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
@@ -613,5 +613,17 @@ namespace Flow.Launcher.Plugin
/// Invoked when the actual theme of the application has changed. Currently, the plugin will continue to be subscribed even if it is turned off.
///
event ActualApplicationThemeChangedEventHandler ActualApplicationThemeChanged;
+
+ ///
+ /// Get the data directory of Flow Launcher.
+ ///
+ ///
+ string GetDataDirectory();
+
+ ///
+ /// Get the log directory of Flow Launcher.
+ ///
+ ///
+ string GetLogDirectory();
}
}
diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs
index d865a087b..e0ed105cf 100644
--- a/Flow.Launcher/PublicAPIInstance.cs
+++ b/Flow.Launcher/PublicAPIInstance.cs
@@ -599,6 +599,10 @@ namespace Flow.Launcher
remove => _mainVM.ActualApplicationThemeChanged -= value;
}
+ public string GetDataDirectory() => DataLocation.DataDirectory();
+
+ public string GetLogDirectory() => DataLocation.VersionLogDirectory;
+
#endregion
#region Private Methods
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj b/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
index 999003fd8..1e2deb558 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj
@@ -37,7 +37,6 @@
-
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
index 0b45b1524..77278a054 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Main.cs
@@ -5,8 +5,6 @@ using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows;
-using Flow.Launcher.Infrastructure;
-using Flow.Launcher.Infrastructure.UserSettings;
using Windows.Win32;
using Windows.Win32.Foundation;
using Windows.Win32.Security;
@@ -52,6 +50,8 @@ namespace Flow.Launcher.Plugin.Sys
private const SHUTDOWN_REASON REASON = SHUTDOWN_REASON.SHTDN_REASON_MAJOR_OTHER |
SHUTDOWN_REASON.SHTDN_REASON_FLAG_PLANNED;
+ private const string Documentation = "https://flowlauncher.com/docs/#/usage-tips";
+
private PluginInitContext _context;
private Settings _settings;
private ThemeSelector _themeSelector;
@@ -445,11 +445,11 @@ namespace Flow.Launcher.Plugin.Sys
Glyph = new GlyphInfo (FontFamily:"/Resources/#Segoe Fluent Icons", Glyph:"\xf12b"),
Title = "Open Log Location",
IcoPath = "Images\\app.png",
- CopyText = DataLocation.VersionLogDirectory,
- AutoCompleteText = DataLocation.VersionLogDirectory,
+ CopyText = _context.API.GetLogDirectory(),
+ AutoCompleteText = _context.API.GetLogDirectory(),
Action = c =>
{
- _context.API.OpenDirectory(DataLocation.VersionLogDirectory);
+ _context.API.OpenDirectory(_context.API.GetLogDirectory());
return true;
}
},
@@ -458,11 +458,11 @@ namespace Flow.Launcher.Plugin.Sys
Title = "Flow Launcher Tips",
Glyph = new GlyphInfo (FontFamily:"/Resources/#Segoe Fluent Icons", Glyph:"\xe897"),
IcoPath = "Images\\app.png",
- CopyText = Constant.Documentation,
- AutoCompleteText = Constant.Documentation,
+ CopyText = Documentation,
+ AutoCompleteText = Documentation,
Action = c =>
{
- _context.API.OpenUrl(Constant.Documentation);
+ _context.API.OpenUrl(Documentation);
return true;
}
},
@@ -471,11 +471,11 @@ namespace Flow.Launcher.Plugin.Sys
Title = "Flow Launcher UserData Folder",
Glyph = new GlyphInfo (FontFamily:"/Resources/#Segoe Fluent Icons", Glyph:"\xf12b"),
IcoPath = "Images\\app.png",
- CopyText = DataLocation.DataDirectory(),
- AutoCompleteText = DataLocation.DataDirectory(),
+ CopyText = _context.API.GetDataDirectory(),
+ AutoCompleteText = _context.API.GetDataDirectory(),
Action = c =>
{
- _context.API.OpenDirectory(DataLocation.DataDirectory());
+ _context.API.OpenDirectory(_context.API.GetDataDirectory());
return true;
}
},
From 4652392c71e5510c31f491d5c15197efd5c14011 Mon Sep 17 00:00:00 2001
From: Jack Ye <1160210343@qq.com>
Date: Sun, 20 Jul 2025 11:29:15 +0800
Subject: [PATCH 08/24] Update translations
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
index 398724f67..56899eef3 100644
--- a/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Sys/Languages/en.xaml
@@ -64,7 +64,7 @@
Are you sure you want to restart the computer with Advanced Boot Options?
Are you sure you want to log off?
Error
- Failed to empty the recycle bin. This might happen if:{0}- Some items are currently in use{0}- Some items can't be deleted due to permission{0}Please close any applications that might be using these files and try again.
+ Failed to empty the recycle bin. This might happen if:{0}- Some items are currently in use{0}- Some items can't be deleted due to permissions{0}Please close any applications that might be using these files and try again.
Command Keyword Setting
Custom Command Keyword
From b7096ddc321f556f803a240853a468e3fd88759a Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 19:22:14 +0800
Subject: [PATCH 09/24] Fix uri exception in Report window
---
Flow.Launcher/ReportWindow.xaml.cs | 43 +++++++++++++++++++++---------
1 file changed, 31 insertions(+), 12 deletions(-)
diff --git a/Flow.Launcher/ReportWindow.xaml.cs b/Flow.Launcher/ReportWindow.xaml.cs
index 24801cf52..ae0767934 100644
--- a/Flow.Launcher/ReportWindow.xaml.cs
+++ b/Flow.Launcher/ReportWindow.xaml.cs
@@ -1,15 +1,15 @@
-using Flow.Launcher.Core.ExternalPlugins;
-using System;
+using System;
using System.Globalization;
using System.IO;
-using System.Text;
using System.Linq;
+using System.Text;
using System.Windows;
using System.Windows.Documents;
+using Flow.Launcher.Core.ExternalPlugins;
using Flow.Launcher.Helper;
using Flow.Launcher.Infrastructure;
-using Flow.Launcher.Plugin.SharedCommands;
using Flow.Launcher.Infrastructure.UserSettings;
+using Flow.Launcher.Plugin.SharedCommands;
namespace Flow.Launcher
{
@@ -44,7 +44,7 @@ namespace Flow.Launcher
var websiteUrl = exception switch
{
- FlowPluginException pluginException =>GetIssuesUrl(pluginException.Metadata.Website),
+ FlowPluginException pluginException => GetIssuesUrl(pluginException.Metadata.Website),
_ => Constant.IssuesUrl
};
@@ -73,17 +73,36 @@ namespace Flow.Launcher
Margin = new Thickness(0)
};
- var link = new Hyperlink
+ Hyperlink link = null;
+ try
{
- IsEnabled = true
- };
- link.Inlines.Add(url);
- link.NavigateUri = new Uri(url);
- link.Click += (s, e) => SearchWeb.OpenInBrowserTab(url);
+ var uri = new Uri(url);
+
+ link = new Hyperlink
+ {
+ IsEnabled = true
+ };
+ link.Inlines.Add(url);
+ link.NavigateUri = uri;
+ link.Click += (s, e) => SearchWeb.OpenInBrowserTab(url);
+ }
+ catch (Exception)
+ {
+ // Leave link as null if the URL is invalid
+ }
paragraph.Inlines.Add(textBeforeUrl);
paragraph.Inlines.Add(" ");
- paragraph.Inlines.Add(link);
+ if (link is null)
+ {
+ // Add the URL as plain text if it is invalid
+ paragraph.Inlines.Add(url);
+ }
+ else
+ {
+ // Add the hyperlink if it is valid
+ paragraph.Inlines.Add(link);
+ }
paragraph.Inlines.Add("\n");
return paragraph;
From 90eec91c4e201c0ded1c9c548a35d89426ab52a3 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 19:56:54 +0800
Subject: [PATCH 10/24] Fix ModernWpfUI version & Restore nuget
---
Flow.Launcher.Core/packages.lock.json | 20 +++++++++++
.../packages.lock.json | 20 +++++++++++
Flow.Launcher/packages.lock.json | 36 +++++++++----------
3 files changed, 58 insertions(+), 18 deletions(-)
diff --git a/Flow.Launcher.Core/packages.lock.json b/Flow.Launcher.Core/packages.lock.json
index dfb099166..caec08ebf 100644
--- a/Flow.Launcher.Core/packages.lock.json
+++ b/Flow.Launcher.Core/packages.lock.json
@@ -83,6 +83,11 @@
"resolved": "1.0.0",
"contentHash": "nwbZAYd+DblXAIzlnwDSnl0CiCm8jWLfHSYnoN4wYhtIav6AegB3+T/vKzLbU2IZlPB8Bvl8U3NXpx3eaz+N5w=="
},
+ "InputSimulator": {
+ "type": "Transitive",
+ "resolved": "1.0.4",
+ "contentHash": "D0LvRCPQMX6/FJHBjng+RO+wRDuHTJrfo7IAc7rmkPvRqchdVGJWg3y70peOtDy3OLNK+HSOwVkH4GiuLnkKgA=="
+ },
"JetBrains.Annotations": {
"type": "Transitive",
"resolved": "2024.3.0",
@@ -179,6 +184,19 @@
"resolved": "13.0.3",
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
+ "NHotkey": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "IEghs0QqWsQYH0uUmvIl0Ye6RaebWRh38eB6ToOkDnQucTYRGFOgtig0gSxlwCszTilYFz3n1ZuY762x+kDR3A=="
+ },
+ "NHotkey.Wpf": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "BIUKlhTG5KtFf9OQzWvkmVmktt5/FFj6AOEgag8Uf0R2YdZt5ajUzs3sVskcJcT2TztWlEHKQr1jFj3KQ0D9Nw==",
+ "dependencies": {
+ "NHotkey": "3.0.0"
+ }
+ },
"NLog": {
"type": "Transitive",
"resolved": "6.0.1",
@@ -237,8 +255,10 @@
"BitFaster.Caching": "[2.5.4, )",
"CommunityToolkit.Mvvm": "[8.4.0, )",
"Flow.Launcher.Plugin": "[4.7.0, )",
+ "InputSimulator": "[1.0.4, )",
"MemoryPack": "[1.21.4, )",
"Microsoft.VisualStudio.Threading": "[17.14.15, )",
+ "NHotkey.Wpf": "[3.0.0, )",
"NLog": "[6.0.1, )",
"NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
diff --git a/Flow.Launcher.Infrastructure/packages.lock.json b/Flow.Launcher.Infrastructure/packages.lock.json
index 0e830661c..87b4bb6da 100644
--- a/Flow.Launcher.Infrastructure/packages.lock.json
+++ b/Flow.Launcher.Infrastructure/packages.lock.json
@@ -29,6 +29,12 @@
"resolved": "6.9.2",
"contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w=="
},
+ "InputSimulator": {
+ "type": "Direct",
+ "requested": "[1.0.4, )",
+ "resolved": "1.0.4",
+ "contentHash": "D0LvRCPQMX6/FJHBjng+RO+wRDuHTJrfo7IAc7rmkPvRqchdVGJWg3y70peOtDy3OLNK+HSOwVkH4GiuLnkKgA=="
+ },
"MemoryPack": {
"type": "Direct",
"requested": "[1.21.4, )",
@@ -61,6 +67,15 @@
"Microsoft.Windows.WDK.Win32Metadata": "0.12.8-experimental"
}
},
+ "NHotkey.Wpf": {
+ "type": "Direct",
+ "requested": "[3.0.0, )",
+ "resolved": "3.0.0",
+ "contentHash": "BIUKlhTG5KtFf9OQzWvkmVmktt5/FFj6AOEgag8Uf0R2YdZt5ajUzs3sVskcJcT2TztWlEHKQr1jFj3KQ0D9Nw==",
+ "dependencies": {
+ "NHotkey": "3.0.0"
+ }
+ },
"NLog": {
"type": "Direct",
"requested": "[6.0.1, )",
@@ -162,6 +177,11 @@
"Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview"
}
},
+ "NHotkey": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "IEghs0QqWsQYH0uUmvIl0Ye6RaebWRh38eB6ToOkDnQucTYRGFOgtig0gSxlwCszTilYFz3n1ZuY762x+kDR3A=="
+ },
"System.Reflection.Metadata": {
"type": "Transitive",
"resolved": "5.0.0",
diff --git a/Flow.Launcher/packages.lock.json b/Flow.Launcher/packages.lock.json
index 591ee2a3c..1047b1f3f 100644
--- a/Flow.Launcher/packages.lock.json
+++ b/Flow.Launcher/packages.lock.json
@@ -20,12 +20,6 @@
"resolved": "6.9.2",
"contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w=="
},
- "InputSimulator": {
- "type": "Direct",
- "requested": "[1.0.4, )",
- "resolved": "1.0.4",
- "contentHash": "D0LvRCPQMX6/FJHBjng+RO+wRDuHTJrfo7IAc7rmkPvRqchdVGJWg3y70peOtDy3OLNK+HSOwVkH4GiuLnkKgA=="
- },
"MdXaml": {
"type": "Direct",
"requested": "[1.27.0, )",
@@ -128,18 +122,9 @@
},
"ModernWpfUI": {
"type": "Direct",
- "requested": "[0.9.5, )",
- "resolved": "0.9.5",
- "contentHash": "Y3XkH0wmzDUdbFglykkIIRVPVsmIqN+rKoLZFaMDh9yMG39AJ6VannEmRCzjVLn7f8pg4SqBWC0PGT49BqTACA=="
- },
- "NHotkey.Wpf": {
- "type": "Direct",
- "requested": "[3.0.0, )",
- "resolved": "3.0.0",
- "contentHash": "BIUKlhTG5KtFf9OQzWvkmVmktt5/FFj6AOEgag8Uf0R2YdZt5ajUzs3sVskcJcT2TztWlEHKQr1jFj3KQ0D9Nw==",
- "dependencies": {
- "NHotkey": "3.0.0"
- }
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "HJ07Be9KOiGKGcMLz/AwY+84h3yGHRPuYpYXCE6h1yPtaFwGMWfanZ70jX7W5XWx8+Qk1vGox+WGKgxxsy6EHw=="
},
"PropertyChanged.Fody": {
"type": "Direct",
@@ -219,6 +204,11 @@
"resolved": "1.11.42",
"contentHash": "LDc1bEfF14EY2DZzak4xvzWvbpNXK3vi1u0KQbBpLUN4+cx/VrvXhgCAMSJhSU5vz0oMfW9JZIR20vj/PkDHPA=="
},
+ "InputSimulator": {
+ "type": "Transitive",
+ "resolved": "1.0.4",
+ "contentHash": "D0LvRCPQMX6/FJHBjng+RO+wRDuHTJrfo7IAc7rmkPvRqchdVGJWg3y70peOtDy3OLNK+HSOwVkH4GiuLnkKgA=="
+ },
"JetBrains.Annotations": {
"type": "Transitive",
"resolved": "2024.3.0",
@@ -590,6 +580,14 @@
"resolved": "3.0.0",
"contentHash": "IEghs0QqWsQYH0uUmvIl0Ye6RaebWRh38eB6ToOkDnQucTYRGFOgtig0gSxlwCszTilYFz3n1ZuY762x+kDR3A=="
},
+ "NHotkey.Wpf": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "BIUKlhTG5KtFf9OQzWvkmVmktt5/FFj6AOEgag8Uf0R2YdZt5ajUzs3sVskcJcT2TztWlEHKQr1jFj3KQ0D9Nw==",
+ "dependencies": {
+ "NHotkey": "3.0.0"
+ }
+ },
"NLog": {
"type": "Transitive",
"resolved": "6.0.1",
@@ -857,8 +855,10 @@
"BitFaster.Caching": "[2.5.4, )",
"CommunityToolkit.Mvvm": "[8.4.0, )",
"Flow.Launcher.Plugin": "[4.7.0, )",
+ "InputSimulator": "[1.0.4, )",
"MemoryPack": "[1.21.4, )",
"Microsoft.VisualStudio.Threading": "[17.14.15, )",
+ "NHotkey.Wpf": "[3.0.0, )",
"NLog": "[6.0.1, )",
"NLog.OutputDebugString": "[6.0.1, )",
"SharpVectors.Wpf": "[1.8.4.2, )",
From 55589f872a72d7274934cf5b74f297b9f9dae170 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Sun, 20 Jul 2025 19:58:49 +0800
Subject: [PATCH 11/24] Resolve conflicts
---
Flow.Launcher.Infrastructure/Win32Helper.cs | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs
index 0e7554d42..5770bbf12 100644
--- a/Flow.Launcher.Infrastructure/Win32Helper.cs
+++ b/Flow.Launcher.Infrastructure/Win32Helper.cs
@@ -816,20 +816,17 @@ namespace Flow.Launcher.Infrastructure
if (threadId == 0) return string.Empty;
var process = PInvoke.OpenProcess(PROCESS_ACCESS_RIGHTS.PROCESS_QUERY_LIMITED_INFORMATION, false, pid);
- if (process.Value != IntPtr.Zero)
+ if (process != HWND.Null)
{
- using var safeHandle = new SafeProcessHandle(process.Value, true);
+ using var safeHandle = new SafeProcessHandle((nint)process.Value, true);
uint capacity = 2000;
Span buffer = new char[capacity];
- fixed (char* pBuffer = buffer)
+ if (!PInvoke.QueryFullProcessImageName(safeHandle, PROCESS_NAME_FORMAT.PROCESS_NAME_WIN32, buffer, ref capacity))
{
- if (!PInvoke.QueryFullProcessImageName(safeHandle, PROCESS_NAME_FORMAT.PROCESS_NAME_WIN32, (PWSTR)pBuffer, ref capacity))
- {
- return string.Empty;
- }
-
- return buffer[..(int)capacity].ToString();
+ return string.Empty;
}
+
+ return buffer[..(int)capacity].ToString();
}
return string.Empty;
From d8740768c72885f6fa4726e4f716e381173f2f67 Mon Sep 17 00:00:00 2001
From: Jeremy Wu
Date: Mon, 21 Jul 2025 21:33:57 +1000
Subject: [PATCH 12/24] wording
---
Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
index 0238bdc1d..dcccaebeb 100644
--- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
+++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
@@ -615,7 +615,7 @@ namespace Flow.Launcher.Plugin
event ActualApplicationThemeChangedEventHandler ActualApplicationThemeChanged;
///
- /// Get the data directory of Flow Launcher.
+ /// Get the user data directory of Flow Launcher.
///
///
string GetDataDirectory();
From ea7833efe463213c7ee6ff633816bf2d1dfa9deb Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Tue, 22 Jul 2025 19:15:54 +0800
Subject: [PATCH 13/24] Add glyph for dialog jump hotkey card item
---
Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
index c69053629..d82d6baa0 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
@@ -76,6 +76,7 @@
Date: Wed, 23 Jul 2025 13:27:36 +0800
Subject: [PATCH 14/24] Upgrade MonitorInfo class
---
Flow.Launcher.Infrastructure/MonitorInfo.cs | 91 ++++++++++++++++---
.../NativeMethods.txt | 4 +-
Flow.Launcher.Infrastructure/Win32Helper.cs | 4 +-
3 files changed, 81 insertions(+), 18 deletions(-)
diff --git a/Flow.Launcher.Infrastructure/MonitorInfo.cs b/Flow.Launcher.Infrastructure/MonitorInfo.cs
index 3221708c1..53617f7e9 100644
--- a/Flow.Launcher.Infrastructure/MonitorInfo.cs
+++ b/Flow.Launcher.Infrastructure/MonitorInfo.cs
@@ -1,5 +1,5 @@
-using System.Collections.Generic;
-using System;
+using System;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Windows;
using Windows.Win32;
@@ -11,9 +11,12 @@ namespace Flow.Launcher.Infrastructure;
///
/// Contains full information about a display monitor.
-/// Codes are edited from: .
+/// Inspired from: https://github.com/Jack251970/DesktopWidgets3.
///
-internal class MonitorInfo
+///
+/// Use this class to replace the System.Windows.Forms.Screen class which can cause possible System.PlatformNotSupportedException.
+///
+public class MonitorInfo
{
///
/// Gets the display monitors (including invisible pseudo-monitors associated with the mirroring drivers).
@@ -23,14 +26,14 @@ internal class MonitorInfo
{
var monitorCount = PInvoke.GetSystemMetrics(SYSTEM_METRICS_INDEX.SM_CMONITORS);
var list = new List(monitorCount);
- var callback = new MONITORENUMPROC((HMONITOR monitor, HDC deviceContext, RECT* rect, LPARAM data) =>
+ var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
{
list.Add(new MonitorInfo(monitor, rect));
return true;
});
var dwData = new LPARAM();
var hdc = new HDC();
- bool ok = PInvoke.EnumDisplayMonitors(hdc, (RECT?)null, callback, dwData);
+ bool ok = PInvoke.EnumDisplayMonitors(hdc, null, callback, dwData);
if (!ok)
{
Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
@@ -43,11 +46,11 @@ internal class MonitorInfo
///
/// Window handle
/// The display monitor that is nearest to a given window, or null if no monitor is found.
- public static unsafe MonitorInfo GetNearestDisplayMonitor(HWND hwnd)
+ public static unsafe MonitorInfo GetNearestDisplayMonitor(nint hwnd)
{
- var nearestMonitor = PInvoke.MonitorFromWindow(hwnd, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
+ var nearestMonitor = PInvoke.MonitorFromWindow(new(hwnd), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
MonitorInfo nearestMonitorInfo = null;
- var callback = new MONITORENUMPROC((HMONITOR monitor, HDC deviceContext, RECT* rect, LPARAM data) =>
+ var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
{
if (monitor == nearestMonitor)
{
@@ -58,7 +61,7 @@ internal class MonitorInfo
});
var dwData = new LPARAM();
var hdc = new HDC();
- bool ok = PInvoke.EnumDisplayMonitors(hdc, (RECT?)null, callback, dwData);
+ bool ok = PInvoke.EnumDisplayMonitors(hdc, null, callback, dwData);
if (!ok)
{
Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
@@ -66,17 +69,75 @@ internal class MonitorInfo
return nearestMonitorInfo;
}
+ ///
+ /// Gets the primary display monitor (the one that contains the taskbar).
+ ///
+ /// The primary display monitor, or null if no monitor is found.
+ public static unsafe MonitorInfo GetPrimaryDisplayMonitor()
+ {
+ var primaryMonitor = PInvoke.MonitorFromWindow(new HWND(IntPtr.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
+ MonitorInfo primaryMonitorInfo = null;
+ var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
+ {
+ if (monitor == primaryMonitor)
+ {
+ primaryMonitorInfo = new MonitorInfo(monitor, rect);
+ return false;
+ }
+ return true;
+ });
+ var dwData = new LPARAM();
+ var hdc = new HDC();
+ bool ok = PInvoke.EnumDisplayMonitors(hdc, null, callback, dwData);
+ if (!ok)
+ {
+ Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
+ }
+ return primaryMonitorInfo;
+ }
+
+ ///
+ /// Gets the display monitor that contains the cursor.
+ ///
+ /// The display monitor that contains the cursor, or null if no monitor is found.
+ public static unsafe MonitorInfo GetCursorDisplayMonitor()
+ {
+ if (!PInvoke.GetCursorPos(out var pt))
+ {
+ Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
+ }
+ var cursorMonitor = PInvoke.MonitorFromPoint(pt, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
+ MonitorInfo cursorMonitorInfo = null;
+ var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
+ {
+ if (monitor == cursorMonitor)
+ {
+ cursorMonitorInfo = new MonitorInfo(monitor, rect);
+ return false;
+ }
+ return true;
+ });
+ var dwData = new LPARAM();
+ var hdc = new HDC();
+ bool ok = PInvoke.EnumDisplayMonitors(hdc, null, callback, dwData);
+ if (!ok)
+ {
+ Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
+ }
+ return cursorMonitorInfo;
+ }
+
private readonly HMONITOR _monitor;
internal unsafe MonitorInfo(HMONITOR monitor, RECT* rect)
{
- RectMonitor =
+ Bounds =
new Rect(new Point(rect->left, rect->top),
new Point(rect->right, rect->bottom));
_monitor = monitor;
var info = new MONITORINFOEXW() { monitorInfo = new MONITORINFO() { cbSize = (uint)sizeof(MONITORINFOEXW) } };
GetMonitorInfo(monitor, ref info);
- RectWork =
+ WorkingArea =
new Rect(new Point(info.monitorInfo.rcWork.left, info.monitorInfo.rcWork.top),
new Point(info.monitorInfo.rcWork.right, info.monitorInfo.rcWork.bottom));
Name = new string(info.szDevice.AsSpan()).Replace("\0", "").Trim();
@@ -93,7 +154,7 @@ internal class MonitorInfo
///
/// If the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.
///
- public Rect RectMonitor { get; }
+ public Rect Bounds { get; }
///
/// Gets the work area rectangle of the display monitor, expressed in virtual-screen coordinates.
@@ -101,7 +162,7 @@ internal class MonitorInfo
///
/// If the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.
///
- public Rect RectWork { get; }
+ public Rect WorkingArea { get; }
///
/// Gets if the monitor is the the primary display monitor.
@@ -109,7 +170,7 @@ internal class MonitorInfo
public bool IsPrimary => _monitor == PInvoke.MonitorFromWindow(new(IntPtr.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
///
- public override string ToString() => $"{Name} {RectMonitor.Width}x{RectMonitor.Height}";
+ public override string ToString() => $"{Name} {Bounds.Width}x{Bounds.Height}";
private static unsafe bool GetMonitorInfo(HMONITOR hMonitor, ref MONITORINFOEXW lpmi)
{
diff --git a/Flow.Launcher.Infrastructure/NativeMethods.txt b/Flow.Launcher.Infrastructure/NativeMethods.txt
index 965ab6caa..2054bc2c0 100644
--- a/Flow.Launcher.Infrastructure/NativeMethods.txt
+++ b/Flow.Launcher.Infrastructure/NativeMethods.txt
@@ -39,6 +39,8 @@ EnumDisplayMonitors
MonitorFromWindow
GetMonitorInfo
MONITORINFOEXW
+GetCursorPos
+MonitorFromPoint
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
@@ -89,4 +91,4 @@ WM_GETTEXT
OpenProcess
QueryFullProcessImageName
EVENT_OBJECT_HIDE
-EVENT_SYSTEM_DIALOGEND
+EVENT_SYSTEM_DIALOGEND
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs
index 5770bbf12..84880d68c 100644
--- a/Flow.Launcher.Infrastructure/Win32Helper.cs
+++ b/Flow.Launcher.Infrastructure/Win32Helper.cs
@@ -293,8 +293,8 @@ namespace Flow.Launcher.Infrastructure
}
var monitorInfo = MonitorInfo.GetNearestDisplayMonitor(hWnd);
- return (appBounds.bottom - appBounds.top) == monitorInfo.RectMonitor.Height &&
- (appBounds.right - appBounds.left) == monitorInfo.RectMonitor.Width;
+ return (appBounds.bottom - appBounds.top) == monitorInfo.Bounds.Height &&
+ (appBounds.right - appBounds.left) == monitorInfo.Bounds.Width;
}
#endregion
From 527c27f67556cc735dd850bf78b93e19070f72f6 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:28:50 +0800
Subject: [PATCH 15/24] Remove System.Windows.Forms.Screen reference
---
Flow.Launcher/MainWindow.xaml.cs | 41 +++++++++----------
Flow.Launcher/Msg.xaml.cs | 3 +-
Flow.Launcher/MsgWithButton.xaml.cs | 3 +-
.../SettingsPaneGeneralViewModel.cs | 6 +--
Flow.Launcher/SettingWindow.xaml.cs | 7 ++--
5 files changed, 28 insertions(+), 32 deletions(-)
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 2ddce8190..429a4aece 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using System.Linq;
using System.Media;
@@ -30,7 +30,6 @@ using DataObject = System.Windows.DataObject;
using Key = System.Windows.Input.Key;
using MouseButtons = System.Windows.Forms.MouseButtons;
using NotifyIcon = System.Windows.Forms.NotifyIcon;
-using Screen = System.Windows.Forms.Screen;
namespace Flow.Launcher
{
@@ -532,7 +531,7 @@ namespace Flow.Launcher
double yRatio = mousePos.Y / maxHeight;
// Current monitor information
- var screen = Screen.FromHandle(new WindowInteropHelper(this).Handle);
+ var screen = MonitorInfo.GetNearestDisplayMonitor(new WindowInteropHelper(this).Handle);
var workingArea = screen.WorkingArea;
var screenLeftTop = Win32Helper.TransformPixelsToDIP(this, workingArea.X, workingArea.Y);
@@ -954,36 +953,36 @@ namespace Flow.Launcher
}
}
- private Screen SelectedScreen()
+ private MonitorInfo SelectedScreen()
{
- Screen screen;
+ MonitorInfo screen;
switch (_settings.SearchWindowScreen)
{
case SearchWindowScreens.Cursor:
- screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
- break;
- case SearchWindowScreens.Primary:
- screen = Screen.PrimaryScreen;
+ screen = MonitorInfo.GetCursorDisplayMonitor();
break;
case SearchWindowScreens.Focus:
- var foregroundWindowHandle = Win32Helper.GetForegroundWindow();
- screen = Screen.FromHandle(foregroundWindowHandle);
+ screen = MonitorInfo.GetNearestDisplayMonitor(Win32Helper.GetForegroundWindow());
+ break;
+ case SearchWindowScreens.Primary:
+ screen = MonitorInfo.GetPrimaryDisplayMonitor();
break;
case SearchWindowScreens.Custom:
- if (_settings.CustomScreenNumber <= Screen.AllScreens.Length)
- screen = Screen.AllScreens[_settings.CustomScreenNumber - 1];
+ var allScreens = MonitorInfo.GetDisplayMonitors();
+ if (_settings.CustomScreenNumber <= allScreens.Count)
+ screen = allScreens[_settings.CustomScreenNumber - 1];
else
- screen = Screen.AllScreens[0];
+ screen = allScreens[0];
break;
default:
- screen = Screen.AllScreens[0];
+ screen = MonitorInfo.GetDisplayMonitors()[0];
break;
}
- return screen ?? Screen.AllScreens[0];
+ return screen ?? MonitorInfo.GetDisplayMonitors()[0];
}
- private double HorizonCenter(Screen screen)
+ private double HorizonCenter(MonitorInfo screen)
{
var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
var dip2 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
@@ -991,7 +990,7 @@ namespace Flow.Launcher
return left;
}
- private double VerticalCenter(Screen screen)
+ private double VerticalCenter(MonitorInfo screen)
{
var dip1 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
var dip2 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);
@@ -999,7 +998,7 @@ namespace Flow.Launcher
return top;
}
- private double HorizonRight(Screen screen)
+ private double HorizonRight(MonitorInfo screen)
{
var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
var dip2 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
@@ -1007,14 +1006,14 @@ namespace Flow.Launcher
return left;
}
- private double HorizonLeft(Screen screen)
+ private double HorizonLeft(MonitorInfo screen)
{
var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
var left = dip1.X + 10;
return left;
}
- public double VerticalTop(Screen screen)
+ private double VerticalTop(MonitorInfo screen)
{
var dip1 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
var top = dip1.Y + 10;
diff --git a/Flow.Launcher/Msg.xaml.cs b/Flow.Launcher/Msg.xaml.cs
index 923c3692f..6063e489c 100644
--- a/Flow.Launcher/Msg.xaml.cs
+++ b/Flow.Launcher/Msg.xaml.cs
@@ -1,7 +1,6 @@
using System;
using System.IO;
using System.Windows;
-using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media.Animation;
using Flow.Launcher.Infrastructure;
@@ -16,7 +15,7 @@ namespace Flow.Launcher
public Msg()
{
InitializeComponent();
- var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var screen = MonitorInfo.GetCursorDisplayMonitor();
var dipWorkingArea = Win32Helper.TransformPixelsToDIP(this,
screen.WorkingArea.Width,
screen.WorkingArea.Height);
diff --git a/Flow.Launcher/MsgWithButton.xaml.cs b/Flow.Launcher/MsgWithButton.xaml.cs
index 8ccd19c46..89149c2d4 100644
--- a/Flow.Launcher/MsgWithButton.xaml.cs
+++ b/Flow.Launcher/MsgWithButton.xaml.cs
@@ -1,7 +1,6 @@
using System;
using System.IO;
using System.Windows;
-using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media.Animation;
using Flow.Launcher.Infrastructure;
@@ -16,7 +15,7 @@ namespace Flow.Launcher
public MsgWithButton()
{
InitializeComponent();
- var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var screen = MonitorInfo.GetCursorDisplayMonitor();
var dipWorkingArea = Win32Helper.TransformPixelsToDIP(this,
screen.WorkingArea.Width,
screen.WorkingArea.Height);
diff --git a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
index 21444ccee..5057ebb44 100644
--- a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
+++ b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
@@ -111,9 +111,9 @@ public partial class SettingsPaneGeneralViewModel : BaseModel
{
get
{
- var screens = Screen.AllScreens;
+ var screens = MonitorInfo.GetDisplayMonitors();
var screenNumbers = new List();
- for (int i = 1; i <= screens.Length; i++)
+ for (int i = 1; i <= screens.Count; i++)
{
screenNumbers.Add(i);
}
diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs
index c1c0f96a7..b4f6bcf69 100644
--- a/Flow.Launcher/SettingWindow.xaml.cs
+++ b/Flow.Launcher/SettingWindow.xaml.cs
@@ -10,7 +10,6 @@ using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.SettingPages.Views;
using Flow.Launcher.ViewModel;
using ModernWpf.Controls;
-using Screen = System.Windows.Forms.Screen;
namespace Flow.Launcher;
@@ -202,7 +201,7 @@ public partial class SettingWindow
private static bool IsPositionValid(double top, double left)
{
- foreach (var screen in Screen.AllScreens)
+ foreach (var screen in MonitorInfo.GetDisplayMonitors())
{
var workingArea = screen.WorkingArea;
@@ -217,7 +216,7 @@ public partial class SettingWindow
private double WindowLeft()
{
- var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var screen = MonitorInfo.GetCursorDisplayMonitor();
var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
var dip2 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
var left = (dip2.X - ActualWidth) / 2 + dip1.X;
@@ -226,7 +225,7 @@ public partial class SettingWindow
private double WindowTop()
{
- var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var screen = MonitorInfo.GetCursorDisplayMonitor();
var dip1 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
var dip2 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);
var top = (dip2.Y - ActualHeight) / 2 + dip1.Y - 20;
From 1946afbfe8152eb5d130a70f236d257cc9f88789 Mon Sep 17 00:00:00 2001
From: Jack Ye <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:33:22 +0800
Subject: [PATCH 16/24] Fix typos
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---
Flow.Launcher.Infrastructure/MonitorInfo.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher.Infrastructure/MonitorInfo.cs b/Flow.Launcher.Infrastructure/MonitorInfo.cs
index 53617f7e9..9a62fc0f4 100644
--- a/Flow.Launcher.Infrastructure/MonitorInfo.cs
+++ b/Flow.Launcher.Infrastructure/MonitorInfo.cs
@@ -165,7 +165,7 @@ public class MonitorInfo
public Rect WorkingArea { get; }
///
- /// Gets if the monitor is the the primary display monitor.
+ /// Gets if the monitor is the primary display monitor.
///
public bool IsPrimary => _monitor == PInvoke.MonitorFromWindow(new(IntPtr.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
From cbbd09b8a500e7a7c14575c51f45acaf290958a0 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:41:01 +0800
Subject: [PATCH 17/24] Add cursor info class
---
Flow.Launcher.Infrastructure/CursorInfo.cs | 26 +++++++++++++++++++++
Flow.Launcher.Infrastructure/MonitorInfo.cs | 6 +----
2 files changed, 27 insertions(+), 5 deletions(-)
create mode 100644 Flow.Launcher.Infrastructure/CursorInfo.cs
diff --git a/Flow.Launcher.Infrastructure/CursorInfo.cs b/Flow.Launcher.Infrastructure/CursorInfo.cs
new file mode 100644
index 000000000..046dc4ba9
--- /dev/null
+++ b/Flow.Launcher.Infrastructure/CursorInfo.cs
@@ -0,0 +1,26 @@
+using System.Drawing;
+using System.Runtime.InteropServices;
+using Windows.Win32;
+
+namespace Flow.Launcher.Infrastructure;
+
+///
+/// Contains full information about a cursor.
+///
+///
+/// Use this class to replace the System.Windows.Forms.Cursor class which can cause possible System.PlatformNotSupportedException.
+///
+public class CursorInfo
+{
+ public static Point Position
+ {
+ get
+ {
+ if (!PInvoke.GetCursorPos(out var pt))
+ {
+ Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
+ }
+ return pt;
+ }
+ }
+}
diff --git a/Flow.Launcher.Infrastructure/MonitorInfo.cs b/Flow.Launcher.Infrastructure/MonitorInfo.cs
index 9a62fc0f4..a87aab7d8 100644
--- a/Flow.Launcher.Infrastructure/MonitorInfo.cs
+++ b/Flow.Launcher.Infrastructure/MonitorInfo.cs
@@ -102,11 +102,7 @@ public class MonitorInfo
/// The display monitor that contains the cursor, or null if no monitor is found.
public static unsafe MonitorInfo GetCursorDisplayMonitor()
{
- if (!PInvoke.GetCursorPos(out var pt))
- {
- Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
- }
- var cursorMonitor = PInvoke.MonitorFromPoint(pt, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
+ var cursorMonitor = PInvoke.MonitorFromPoint(CursorInfo.Position, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
MonitorInfo cursorMonitorInfo = null;
var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
{
From 4f423c47cdf6568e7e0fa2eff6e8a89bcdcabf37 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:44:31 +0800
Subject: [PATCH 18/24] Allow all projects to access MonitorInfo & CursorInfo
---
Flow.Launcher.Infrastructure/NativeMethods.txt | 8 --------
Flow.Launcher.Plugin/NativeMethods.txt | 10 +++++++++-
.../SharedModels}/CursorInfo.cs | 5 ++++-
.../SharedModels}/MonitorInfo.cs | 6 +++---
4 files changed, 16 insertions(+), 13 deletions(-)
rename {Flow.Launcher.Infrastructure => Flow.Launcher.Plugin/SharedModels}/CursorInfo.cs (79%)
rename {Flow.Launcher.Infrastructure => Flow.Launcher.Plugin/SharedModels}/MonitorInfo.cs (97%)
diff --git a/Flow.Launcher.Infrastructure/NativeMethods.txt b/Flow.Launcher.Infrastructure/NativeMethods.txt
index 2054bc2c0..e87004251 100644
--- a/Flow.Launcher.Infrastructure/NativeMethods.txt
+++ b/Flow.Launcher.Infrastructure/NativeMethods.txt
@@ -34,14 +34,6 @@ WINDOW_STYLE
SetLastError
WINDOW_EX_STYLE
-GetSystemMetrics
-EnumDisplayMonitors
-MonitorFromWindow
-GetMonitorInfo
-MONITORINFOEXW
-GetCursorPos
-MonitorFromPoint
-
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
WM_NCLBUTTONDBLCLK
diff --git a/Flow.Launcher.Plugin/NativeMethods.txt b/Flow.Launcher.Plugin/NativeMethods.txt
index 0596691cc..901695a8b 100644
--- a/Flow.Launcher.Plugin/NativeMethods.txt
+++ b/Flow.Launcher.Plugin/NativeMethods.txt
@@ -5,4 +5,12 @@ GetWindowTextLength
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
-WM_SYSKEYUP
\ No newline at end of file
+WM_SYSKEYUP
+
+GetSystemMetrics
+EnumDisplayMonitors
+MonitorFromWindow
+GetMonitorInfo
+MONITORINFOEXW
+GetCursorPos
+MonitorFromPoint
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/CursorInfo.cs b/Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
similarity index 79%
rename from Flow.Launcher.Infrastructure/CursorInfo.cs
rename to Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
index 046dc4ba9..720bf2ae3 100644
--- a/Flow.Launcher.Infrastructure/CursorInfo.cs
+++ b/Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
@@ -2,7 +2,7 @@
using System.Runtime.InteropServices;
using Windows.Win32;
-namespace Flow.Launcher.Infrastructure;
+namespace Flow.Launcher.Plugin.SharedModels;
///
/// Contains full information about a cursor.
@@ -12,6 +12,9 @@ namespace Flow.Launcher.Infrastructure;
///
public class CursorInfo
{
+ ///
+ /// Gets the current position of the cursor in screen coordinates.
+ ///
public static Point Position
{
get
diff --git a/Flow.Launcher.Infrastructure/MonitorInfo.cs b/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
similarity index 97%
rename from Flow.Launcher.Infrastructure/MonitorInfo.cs
rename to Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
index a87aab7d8..22e09e2f5 100644
--- a/Flow.Launcher.Infrastructure/MonitorInfo.cs
+++ b/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
@@ -7,7 +7,7 @@ using Windows.Win32.Foundation;
using Windows.Win32.Graphics.Gdi;
using Windows.Win32.UI.WindowsAndMessaging;
-namespace Flow.Launcher.Infrastructure;
+namespace Flow.Launcher.Plugin.SharedModels;
///
/// Contains full information about a display monitor.
@@ -75,7 +75,7 @@ public class MonitorInfo
/// The primary display monitor, or null if no monitor is found.
public static unsafe MonitorInfo GetPrimaryDisplayMonitor()
{
- var primaryMonitor = PInvoke.MonitorFromWindow(new HWND(IntPtr.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
+ var primaryMonitor = PInvoke.MonitorFromWindow(new HWND(nint.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
MonitorInfo primaryMonitorInfo = null;
var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
{
@@ -163,7 +163,7 @@ public class MonitorInfo
///
/// Gets if the monitor is the primary display monitor.
///
- public bool IsPrimary => _monitor == PInvoke.MonitorFromWindow(new(IntPtr.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
+ public bool IsPrimary => _monitor == PInvoke.MonitorFromWindow(new(nint.Zero), MONITOR_FROM_FLAGS.MONITOR_DEFAULTTOPRIMARY);
///
public override string ToString() => $"{Name} {Bounds.Width}x{Bounds.Height}";
From 3cfe122c7bb21f69e0b8bcb0e4a4d59bc571e4d3 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:51:35 +0800
Subject: [PATCH 19/24] Use new MonitorInfo class class
---
Flow.Launcher.Infrastructure/Win32Helper.cs | 1 +
Flow.Launcher/MainWindow.xaml.cs | 1 +
Flow.Launcher/Msg.xaml.cs | 1 +
Flow.Launcher/MsgWithButton.xaml.cs | 1 +
Flow.Launcher/SettingWindow.xaml.cs | 1 +
.../Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs | 5 +++--
6 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs
index 84880d68c..68d382377 100644
--- a/Flow.Launcher.Infrastructure/Win32Helper.cs
+++ b/Flow.Launcher.Infrastructure/Win32Helper.cs
@@ -13,6 +13,7 @@ using System.Windows.Interop;
using System.Windows.Markup;
using System.Windows.Media;
using Flow.Launcher.Infrastructure.UserSettings;
+using Flow.Launcher.Plugin.SharedModels;
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
using Windows.Win32;
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 429a4aece..e69de67cf 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -23,6 +23,7 @@ using Flow.Launcher.Infrastructure.DialogJump;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin;
using Flow.Launcher.Plugin.SharedCommands;
+using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.ViewModel;
using Microsoft.Win32;
using ModernWpf.Controls;
diff --git a/Flow.Launcher/Msg.xaml.cs b/Flow.Launcher/Msg.xaml.cs
index 6063e489c..dd7d4495c 100644
--- a/Flow.Launcher/Msg.xaml.cs
+++ b/Flow.Launcher/Msg.xaml.cs
@@ -4,6 +4,7 @@ using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Animation;
using Flow.Launcher.Infrastructure;
+using Flow.Launcher.Plugin.SharedModels;
namespace Flow.Launcher
{
diff --git a/Flow.Launcher/MsgWithButton.xaml.cs b/Flow.Launcher/MsgWithButton.xaml.cs
index 89149c2d4..7ae53e6c5 100644
--- a/Flow.Launcher/MsgWithButton.xaml.cs
+++ b/Flow.Launcher/MsgWithButton.xaml.cs
@@ -4,6 +4,7 @@ using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Animation;
using Flow.Launcher.Infrastructure;
+using Flow.Launcher.Plugin.SharedModels;
namespace Flow.Launcher
{
diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs
index b4f6bcf69..0e3e69996 100644
--- a/Flow.Launcher/SettingWindow.xaml.cs
+++ b/Flow.Launcher/SettingWindow.xaml.cs
@@ -7,6 +7,7 @@ using System.Windows.Interop;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.Infrastructure;
using Flow.Launcher.Infrastructure.UserSettings;
+using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.SettingPages.Views;
using Flow.Launcher.ViewModel;
using ModernWpf.Controls;
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs
index cbf6f1f8b..274537cd3 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/ResultManager.cs
@@ -7,6 +7,7 @@ using System.Windows.Input;
using Flow.Launcher.Plugin.Explorer.Search.Everything;
using Flow.Launcher.Plugin.Explorer.Views;
using Flow.Launcher.Plugin.SharedCommands;
+using Flow.Launcher.Plugin.SharedModels;
using Peter;
using Path = System.IO.Path;
@@ -72,10 +73,10 @@ namespace Flow.Launcher.Plugin.Explorer.Search
internal static void ShowNativeContextMenu(string path, ResultType type)
{
- var screenWithMouseCursor = System.Windows.Forms.Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var screenWithMouseCursor = MonitorInfo.GetCursorDisplayMonitor();
var xOfScreenCenter = screenWithMouseCursor.WorkingArea.Left + screenWithMouseCursor.WorkingArea.Width / 2;
var yOfScreenCenter = screenWithMouseCursor.WorkingArea.Top + screenWithMouseCursor.WorkingArea.Height / 2;
- var showPosition = new System.Drawing.Point(xOfScreenCenter, yOfScreenCenter);
+ var showPosition = new System.Drawing.Point((int)xOfScreenCenter, (int)yOfScreenCenter);
switch (type)
{
From 3cd7c3ce009822566cb6f9330cdf092e39198296 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 13:52:31 +0800
Subject: [PATCH 20/24] Remove CursorInfo class
---
.../SharedModels/CursorInfo.cs | 29 -------------------
.../SharedModels/MonitorInfo.cs | 9 ++++--
2 files changed, 6 insertions(+), 32 deletions(-)
delete mode 100644 Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
diff --git a/Flow.Launcher.Plugin/SharedModels/CursorInfo.cs b/Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
deleted file mode 100644
index 720bf2ae3..000000000
--- a/Flow.Launcher.Plugin/SharedModels/CursorInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Drawing;
-using System.Runtime.InteropServices;
-using Windows.Win32;
-
-namespace Flow.Launcher.Plugin.SharedModels;
-
-///
-/// Contains full information about a cursor.
-///
-///
-/// Use this class to replace the System.Windows.Forms.Cursor class which can cause possible System.PlatformNotSupportedException.
-///
-public class CursorInfo
-{
- ///
- /// Gets the current position of the cursor in screen coordinates.
- ///
- public static Point Position
- {
- get
- {
- if (!PInvoke.GetCursorPos(out var pt))
- {
- Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
- }
- return pt;
- }
- }
-}
diff --git a/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs b/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
index 22e09e2f5..6808c9c91 100644
--- a/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
+++ b/Flow.Launcher.Plugin/SharedModels/MonitorInfo.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Windows;
using Windows.Win32;
@@ -102,7 +101,11 @@ public class MonitorInfo
/// The display monitor that contains the cursor, or null if no monitor is found.
public static unsafe MonitorInfo GetCursorDisplayMonitor()
{
- var cursorMonitor = PInvoke.MonitorFromPoint(CursorInfo.Position, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
+ if (!PInvoke.GetCursorPos(out var pt))
+ {
+ Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
+ }
+ var cursorMonitor = PInvoke.MonitorFromPoint(pt, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
MonitorInfo cursorMonitorInfo = null;
var callback = new MONITORENUMPROC((monitor, deviceContext, rect, data) =>
{
From 74306f0a7616d6807ee992f3b4e2ee78c617f84c Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 14:15:20 +0800
Subject: [PATCH 21/24] Use PInvoke to register SystemEvents
---
.../NativeMethods.txt | 5 +++-
Flow.Launcher.Infrastructure/Win32Helper.cs | 3 +++
Flow.Launcher/MainWindow.xaml.cs | 23 ++++++++-----------
3 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/Flow.Launcher.Infrastructure/NativeMethods.txt b/Flow.Launcher.Infrastructure/NativeMethods.txt
index e87004251..eb844dd7c 100644
--- a/Flow.Launcher.Infrastructure/NativeMethods.txt
+++ b/Flow.Launcher.Infrastructure/NativeMethods.txt
@@ -83,4 +83,7 @@ WM_GETTEXT
OpenProcess
QueryFullProcessImageName
EVENT_OBJECT_HIDE
-EVENT_SYSTEM_DIALOGEND
\ No newline at end of file
+EVENT_SYSTEM_DIALOGEND
+
+WM_POWERBROADCAST
+PBT_APMRESUMEAUTOMATIC
\ No newline at end of file
diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs
index 68d382377..7cc644eaa 100644
--- a/Flow.Launcher.Infrastructure/Win32Helper.cs
+++ b/Flow.Launcher.Infrastructure/Win32Helper.cs
@@ -338,6 +338,9 @@ namespace Flow.Launcher.Infrastructure
public const int SC_MAXIMIZE = (int)PInvoke.SC_MAXIMIZE;
public const int SC_MINIMIZE = (int)PInvoke.SC_MINIMIZE;
+ public const int WM_POWERBROADCAST = (int)PInvoke.WM_POWERBROADCAST;
+ public const int PBT_APMRESUMEAUTOMATIC = (int)PInvoke.PBT_APMRESUMEAUTOMATIC;
+
#endregion
#region Window Handle
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index e69de67cf..8eb41e032 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -25,7 +25,6 @@ using Flow.Launcher.Plugin;
using Flow.Launcher.Plugin.SharedCommands;
using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.ViewModel;
-using Microsoft.Win32;
using ModernWpf.Controls;
using DataObject = System.Windows.DataObject;
using Key = System.Windows.Input.Key;
@@ -96,7 +95,6 @@ namespace Flow.Launcher
InitSoundEffects();
DataObject.AddPastingHandler(QueryTextBox, QueryTextBox_OnPaste);
- SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
_viewModel.ActualApplicationThemeChanged += ViewModel_ActualApplicationThemeChanged;
}
@@ -670,6 +668,16 @@ namespace Flow.Launcher
handled = true;
}
break;
+ case Win32Helper.WM_POWERBROADCAST: // Handle power broadcast messages
+ // https://learn.microsoft.com/en-us/windows/win32/power/wm-powerbroadcast
+ if (wParam.ToInt32() == Win32Helper.PBT_APMRESUMEAUTOMATIC)
+ {
+ // Fix for sound not playing after sleep / hibernate
+ // https://stackoverflow.com/questions/64805186/mediaplayer-doesnt-play-after-computer-sleeps
+ InitSoundEffects();
+ }
+ handled = true;
+ break;
}
return IntPtr.Zero;
@@ -679,16 +687,6 @@ namespace Flow.Launcher
#region Window Sound Effects
- private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
- {
- // Fix for sound not playing after sleep / hibernate
- // https://stackoverflow.com/questions/64805186/mediaplayer-doesnt-play-after-computer-sleeps
- if (e.Mode == PowerModes.Resume)
- {
- InitSoundEffects();
- }
- }
-
private void InitSoundEffects()
{
if (_settings.WMPInstalled)
@@ -1443,7 +1441,6 @@ namespace Flow.Launcher
animationSoundWMP?.Close();
animationSoundWPF?.Dispose();
_viewModel.ActualApplicationThemeChanged -= ViewModel_ActualApplicationThemeChanged;
- SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged;
}
_disposed = true;
From 20f6a74fbe299e6d2992e4cd58688198e43f6610 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 23 Jul 2025 17:33:03 +0800
Subject: [PATCH 22/24] Fix dialog jump issue when result will not be execueted
under empty query option
---
Flow.Launcher/ViewModel/MainViewModel.cs | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index 5eae23c27..045ff46cc 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -501,15 +501,14 @@ namespace Flow.Launcher.ViewModel
// For Dialog Jump and left click mode, we need to navigate to the path
if (_isDialogJump && Settings.DialogJumpResultBehaviour == DialogJumpResultBehaviours.LeftClick)
{
- Hide();
-
- if (SelectedResults.SelectedItem != null && DialogWindowHandle != nint.Zero)
+ if (result is DialogJumpResult dialogJumpResult)
{
- if (result is DialogJumpResult dialogJumpResult)
- {
- Win32Helper.SetForegroundWindow(DialogWindowHandle);
- _ = Task.Run(() => DialogJump.JumpToPathAsync(DialogWindowHandle, dialogJumpResult.DialogJumpPath));
- }
+ Win32Helper.SetForegroundWindow(DialogWindowHandle);
+ _ = Task.Run(() => DialogJump.JumpToPathAsync(DialogWindowHandle, dialogJumpResult.DialogJumpPath));
+ }
+ else
+ {
+ App.API.LogError(ClassName, "DialogJumpResult expected but got a different result type.");
}
}
// For query mode, we execute the result
From c42f84f246721accc1b860c616da725a354bd1d2 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Thu, 24 Jul 2025 16:39:58 +0800
Subject: [PATCH 23/24] Update Pinyin description
---
Flow.Launcher/Languages/en.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index f37568419..0bea11c12 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -121,7 +121,7 @@
Low
Regular
Search with Pinyin
- Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.
+ Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese. Enabling it can introduce more memory usage during searching.
Use Double Pinyin
Use Double Pinyin instead of Full Pinyin to search.
Double Pinyin Schema
From 0564e5814b242b4efa2f711ab28e28bf44290db9 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Thu, 24 Jul 2025 16:54:19 +0800
Subject: [PATCH 24/24] Update description
---
Flow.Launcher/Languages/en.xaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 0bea11c12..bf6cb674e 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -121,7 +121,7 @@
Low
Regular
Search with Pinyin
- Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese. Enabling it can introduce more memory usage during searching.
+ Pinyin is the standard system of romanized spelling for translating Chinese. Please note, enabling this can significantly increase memory usage during search.
Use Double Pinyin
Use Double Pinyin instead of Full Pinyin to search.
Double Pinyin Schema