@@ -5,15 +5,12 @@ namespace v2rayN.Desktop.Views;
55
66public partial class RoutingSettingWindow : WindowBase < RoutingSettingViewModel >
77{
8- private bool _manualClose = false ;
9-
108 public RoutingSettingWindow ( )
119 {
1210 InitializeComponent ( ) ;
1311
1412 Loaded += Window_Loaded ;
1513 Closing += RoutingSettingWindow_Closing ;
16- btnCancel . Click += ( s , e ) => Close ( ) ;
1714 KeyDown += RoutingSettingWindow_KeyDown ;
1815 lstRoutings . SelectionChanged += lstRoutings_SelectionChanged ;
1916 lstRoutings . DoubleTapped += LstRoutings_DoubleTapped ;
@@ -38,8 +35,6 @@ public RoutingSettingWindow()
3835 this . BindCommand ( ViewModel , vm => vm . RoutingAdvancedSetDefaultCmd , v => v . menuRoutingAdvancedSetDefault ) . DisposeWith ( disposables ) ;
3936 this . BindCommand ( ViewModel , vm => vm . RoutingAdvancedImportRulesCmd , v => v . menuRoutingAdvancedImportRules ) . DisposeWith ( disposables ) ;
4037 this . BindCommand ( ViewModel , vm => vm . RoutingAdvancedImportRulesCmd , v => v . menuRoutingAdvancedImportRules2 ) . DisposeWith ( disposables ) ;
41-
42- this . BindCommand ( ViewModel , vm => vm . SaveCmd , v => v . btnSave ) . DisposeWith ( disposables ) ;
4338 } ) ;
4439 }
4540
@@ -69,6 +64,19 @@ private async Task<bool> UpdateViewHandler(EViewAction action, object? obj)
6964 return await Task . FromResult ( true ) ;
7065 }
7166
67+ private async void RoutingSettingWindow_Closing ( object ? sender , WindowClosingEventArgs e )
68+ {
69+ // Save DomainStrategy settings on close
70+ if ( ViewModel != null )
71+ {
72+ await ViewModel . SaveSettingsAsync ( ) ;
73+ }
74+ if ( ViewModel ? . IsModified == true )
75+ {
76+ Close ( true ) ;
77+ }
78+ }
79+
7280 private void RoutingSettingWindow_KeyDown ( object ? sender , KeyEventArgs e )
7381 {
7482 if ( e . KeyModifiers is KeyModifiers . Control or KeyModifiers . Meta )
@@ -125,25 +133,7 @@ private void linkdomainStrategy4Singbox_Click(object? sender, RoutedEventArgs e)
125133 ProcUtils . ProcessStart ( "https://sing-box.sagernet.org/zh/configuration/route/rule_action/#strategy" ) ;
126134 }
127135
128- private void btnCancel_Click ( object ? sender , RoutedEventArgs e )
129- {
130- _manualClose = true ;
131- Close ( ViewModel ? . IsModified ) ;
132- }
133-
134- private void RoutingSettingWindow_Closing ( object ? sender , WindowClosingEventArgs e )
135- {
136- if ( ViewModel ? . IsModified == true )
137- {
138- if ( ! _manualClose )
139- {
140- btnCancel_Click ( null , null ) ;
141- }
142- }
143- }
144-
145136 private void Window_Loaded ( object ? sender , RoutedEventArgs e )
146137 {
147- btnCancel . Focus ( ) ;
148138 }
149139}
0 commit comments