From 78f8d9a271d2f9facd95702b69196ee3b5fba236 Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Thu, 31 Jul 2025 10:03:29 +0800
Subject: [PATCH] =?UTF-8?q?fix:=E9=80=80=E5=87=BA=E7=A1=AE=E8=AE=A4?=
=?UTF-8?q?=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Ink Canvas.sln.DotSettings.user | 4 +-
Ink Canvas/MainWindow.xaml.cs | 41 +++++++++++++++----
.../MainWindow_cs/MW_FloatingBarIcons.cs | 9 ++--
3 files changed, 40 insertions(+), 14 deletions(-)
diff --git a/Ink Canvas.sln.DotSettings.user b/Ink Canvas.sln.DotSettings.user
index 5ef2d603..0401f804 100644
--- a/Ink Canvas.sln.DotSettings.user
+++ b/Ink Canvas.sln.DotSettings.user
@@ -1,2 +1,4 @@
- WARNING
\ No newline at end of file
+ WARNING
+ C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe
+ 1114112
\ No newline at end of file
diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs
index 1d6fc062..f52d1faf 100644
--- a/Ink Canvas/MainWindow.xaml.cs
+++ b/Ink Canvas/MainWindow.xaml.cs
@@ -482,14 +482,39 @@ namespace Ink_Canvas {
private void Window_Closing(object sender, CancelEventArgs e) {
LogHelper.WriteLogToFile("Ink Canvas closing", LogHelper.LogType.Event);
if (!CloseIsFromButton && Settings.Advanced.IsSecondConfirmWhenShutdownApp) {
- e.Cancel = true;
- if (MessageBox.Show("是否继续关闭 InkCanvasForClass,这将丢失当前未保存的墨迹。", "InkCanvasForClass",
- MessageBoxButton.OKCancel, MessageBoxImage.Warning) == MessageBoxResult.OK)
- if (MessageBox.Show("真的狠心关闭 InkCanvasForClass吗?", "InkCanvasForClass", MessageBoxButton.OKCancel,
- MessageBoxImage.Error) == MessageBoxResult.OK)
- if (MessageBox.Show("是否取消关闭 InkCanvasForClass?", "InkCanvasForClass", MessageBoxButton.OKCancel,
- MessageBoxImage.Error) != MessageBoxResult.OK)
- e.Cancel = false;
+ // 第一个确认对话框
+ var result1 = MessageBox.Show("是否继续关闭 InkCanvasForClass,这将丢失当前未保存的墨迹。", "InkCanvasForClass",
+ MessageBoxButton.OKCancel, MessageBoxImage.Warning);
+
+ if (result1 == MessageBoxResult.Cancel) {
+ e.Cancel = true;
+ LogHelper.WriteLogToFile("Ink Canvas closing cancelled at first confirmation", LogHelper.LogType.Event);
+ return;
+ }
+
+ // 第二个确认对话框
+ var result2 = MessageBox.Show("真的狠心关闭 InkCanvasForClass吗?", "InkCanvasForClass",
+ MessageBoxButton.OKCancel, MessageBoxImage.Error);
+
+ if (result2 == MessageBoxResult.Cancel) {
+ e.Cancel = true;
+ LogHelper.WriteLogToFile("Ink Canvas closing cancelled at second confirmation", LogHelper.LogType.Event);
+ return;
+ }
+
+ // 第三个最终确认对话框
+ var result3 = MessageBox.Show("最后确认:确定要关闭 InkCanvasForClass 吗?", "InkCanvasForClass",
+ MessageBoxButton.OKCancel, MessageBoxImage.Question);
+
+ if (result3 == MessageBoxResult.Cancel) {
+ e.Cancel = true;
+ LogHelper.WriteLogToFile("Ink Canvas closing cancelled at final confirmation", LogHelper.LogType.Event);
+ return;
+ }
+
+ // 所有确认都通过,允许关闭
+ e.Cancel = false;
+ LogHelper.WriteLogToFile("Ink Canvas closing confirmed by user", LogHelper.LogType.Event);
}
if (e.Cancel) LogHelper.WriteLogToFile("Ink Canvas closing cancelled", LogHelper.LogType.Event);
diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
index 9a7194bb..9bd81835 100644
--- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
+++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
@@ -1701,16 +1701,15 @@ namespace Ink_Canvas {
public void BtnExit_Click(object sender, RoutedEventArgs e) {
App.IsAppExitByUser = true;
- Application.Current.Shutdown();
- // CloseIsFromButton = true;
- // Close();
+ // 不设置 CloseIsFromButton = true,让它也经过确认流程
+ Close();
}
public void BtnRestart_Click(object sender, RoutedEventArgs e) {
Process.Start(System.Windows.Forms.Application.ExecutablePath, "-m");
App.IsAppExitByUser = true;
- CloseIsFromButton = true;
- Application.Current.Shutdown();
+ // 不设置 CloseIsFromButton = true,让它也经过确认流程
+ Close();
}
private void SettingsOverlayClick(object sender, MouseButtonEventArgs e) {