@@ -28,7 +28,7 @@ public HotkeyControl()
28
28
29
29
private CancellationTokenSource hotkeyUpdateSource ;
30
30
31
- void TbHotkey_OnPreviewKeyDown ( object sender , KeyEventArgs e )
31
+ private void TbHotkey_OnPreviewKeyDown ( object sender , KeyEventArgs e )
32
32
{
33
33
hotkeyUpdateSource ? . Cancel ( ) ;
34
34
hotkeyUpdateSource ? . Dispose ( ) ;
@@ -56,15 +56,15 @@ void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e)
56
56
return ;
57
57
}
58
58
59
- Dispatcher . InvokeAsync ( async ( ) =>
59
+ _ = Dispatcher . InvokeAsync ( async ( ) =>
60
60
{
61
- await Task . Delay ( 500 ) ;
61
+ await Task . Delay ( 500 , token ) ;
62
62
if ( ! token . IsCancellationRequested )
63
- SetHotkey ( hotkeyModel ) ;
63
+ await SetHotkey ( hotkeyModel ) ;
64
64
} ) ;
65
65
}
66
66
67
- public void SetHotkey ( HotkeyModel keyModel , bool triggerValidate = true )
67
+ public async Task SetHotkey ( HotkeyModel keyModel , bool triggerValidate = true )
68
68
{
69
69
CurrentHotkey = keyModel ;
70
70
@@ -86,6 +86,13 @@ public void SetHotkey(HotkeyModel keyModel, bool triggerValidate = true)
86
86
}
87
87
tbMsg . Visibility = Visibility . Visible ;
88
88
OnHotkeyChanged ( ) ;
89
+
90
+ var token = hotkeyUpdateSource . Token ;
91
+ await Task . Delay ( 500 , token ) ;
92
+ if ( token . IsCancellationRequested )
93
+ return ;
94
+ FocusManager . SetFocusedElement ( FocusManager . GetFocusScope ( this ) , null ) ;
95
+ Keyboard . ClearFocus ( ) ;
89
96
}
90
97
}
91
98
0 commit comments