99using OneNoteApp = LinqToOneNote . OneNote ;
1010namespace Flow . Launcher . Plugin . OneNote
1111{
12- #nullable disable
12+ #nullable disable
1313 public class Main : IAsyncPlugin , IContextMenu , ISettingProvider , IDisposable
1414 {
1515 private PluginInitContext context ;
@@ -18,6 +18,7 @@ public class Main : IAsyncPlugin, IContextMenu, ISettingProvider, IDisposable
1818 private SearchManager searchManager ;
1919 private Settings settings ;
2020 private IconProvider iconProvider ;
21+ private VisibilityChanged visibilityChanged ;
2122
2223 private static SemaphoreSlim semaphore ;
2324
@@ -26,21 +27,19 @@ public Task InitAsync(PluginInitContext context)
2627 {
2728 this . context = context ;
2829 settings = context . API . LoadSettingJsonStorage < Settings > ( ) ;
29-
30+
31+ visibilityChanged = new VisibilityChanged ( context ) ;
3032 iconProvider = new IconProvider ( context , settings ) ;
3133 resultCreator = new ResultCreator ( context , settings , iconProvider ) ;
32- searchManager = new SearchManager ( context , settings , resultCreator ) ;
33- semaphore = new SemaphoreSlim ( 1 , 1 ) ;
34- context . API . VisibilityChanged += OnVisibilityChanged ;
35- return Task . CompletedTask ;
36- }
34+ searchManager = new SearchManager ( context , settings , resultCreator , visibilityChanged ) ;
35+ semaphore = new SemaphoreSlim ( 1 , 1 ) ;
3736
38- private void OnVisibilityChanged ( object _ , VisibilityChangedEventArgs e )
39- {
40- if ( context . CurrentPluginMetadata . Disabled || ! e . IsVisible )
37+ visibilityChanged . Subscribe ( static ( isVisible ) =>
4138 {
42- Task . Run ( OneNoteApp . ReleaseComObject ) ;
43- }
39+ if ( ! isVisible )
40+ Task . Run ( OneNoteApp . ReleaseComObject ) ;
41+ } ) ;
42+ return Task . CompletedTask ;
4443 }
4544
4645 private static async Task OneNoteInitAsync ( CancellationToken token )
@@ -70,7 +69,7 @@ public async Task<List<Result>> QueryAsync(Query query, CancellationToken token)
7069
7170 await init ;
7271
73- return searchManager . Query ( query . Search ) ;
72+ return searchManager . Query ( query ) ;
7473 }
7574
7675 public List < Result > LoadContextMenus ( Result selectedResult )
@@ -85,7 +84,7 @@ public Control CreateSettingPanel()
8584
8685 public void Dispose ( )
8786 {
88- context . API . VisibilityChanged -= OnVisibilityChanged ;
87+ visibilityChanged . Dispose ( ) ;
8988 semaphore . Dispose ( ) ;
9089 OneNoteApp . ReleaseComObject ( ) ;
9190 }
0 commit comments