11
11
using Flow . Launcher . Helper ;
12
12
using Flow . Launcher . Infrastructure . UserSettings ;
13
13
using Flow . Launcher . ViewModel ;
14
+ using Microsoft . AspNetCore . Authorization ;
14
15
using Application = System . Windows . Application ;
15
16
using Screen = System . Windows . Forms . Screen ;
16
17
using ContextMenuStrip = System . Windows . Forms . ContextMenuStrip ;
@@ -30,6 +31,7 @@ public partial class MainWindow
30
31
private bool isProgressBarStoryboardPaused ;
31
32
private Settings _settings ;
32
33
private NotifyIcon _notifyIcon ;
34
+ private ContextMenu contextMenu ;
33
35
private MainViewModel _viewModel ;
34
36
35
37
#endregion
@@ -159,14 +161,10 @@ private void InitializePosition()
159
161
160
162
private void UpdateNotifyIconText ( )
161
163
{
162
- var menu = _notifyIcon . ContextMenuStrip ;
163
- var open = menu . Items [ 0 ] ;
164
- var setting = menu . Items [ 1 ] ;
165
- var exit = menu . Items [ 2 ] ;
166
-
167
- open . Text = InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) ;
168
- setting . Text = InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" ) ;
169
- exit . Text = InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" ) ;
164
+ var menu = contextMenu ;
165
+ ( ( MenuItem ) menu . Items [ 1 ] ) . Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) ;
166
+ ( ( MenuItem ) menu . Items [ 2 ] ) . Header = InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" ) ;
167
+ ( ( MenuItem ) menu . Items [ 3 ] ) . Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" ) ;
170
168
}
171
169
172
170
private void InitializeNotifyIcon ( )
@@ -177,30 +175,46 @@ private void InitializeNotifyIcon()
177
175
Icon = Properties . Resources . app ,
178
176
Visible = ! _settings . HideNotifyIcon
179
177
} ;
180
- var menu = new ContextMenuStrip ( ) ;
181
- var items = menu . Items ;
178
+ contextMenu = new ContextMenu ( ) ;
179
+
180
+ var header = new MenuItem
181
+ {
182
+ Header = "Flow Launcher" ,
183
+ IsEnabled = false
184
+ } ;
185
+ var open = new MenuItem
186
+ {
187
+ Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" )
188
+ } ;
189
+ var settings = new MenuItem
190
+ {
191
+ Header = InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" )
192
+ } ;
193
+ var exit = new MenuItem
194
+ {
195
+ Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" )
196
+ } ;
182
197
183
- var open = items . Add ( InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) ) ;
184
198
open . Click += ( o , e ) => Visibility = Visibility . Visible ;
185
- var setting = items . Add ( InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" ) ) ;
186
- setting . Click += ( o , e ) => App . API . OpenSettingDialog ( ) ;
187
- var exit = items . Add ( InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" ) ) ;
199
+ settings . Click += ( o , e ) => App . API . OpenSettingDialog ( ) ;
188
200
exit . Click += ( o , e ) => Close ( ) ;
201
+ contextMenu . Items . Add ( header ) ;
202
+ contextMenu . Items . Add ( open ) ;
203
+ contextMenu . Items . Add ( settings ) ;
204
+ contextMenu . Items . Add ( exit ) ;
189
205
190
- _notifyIcon . ContextMenuStrip = menu ;
206
+ _notifyIcon . ContextMenuStrip = new ContextMenuStrip ( ) ; // it need for close the context menu. if not, context menu can't close.
191
207
_notifyIcon . MouseClick += ( o , e ) =>
192
208
{
193
- if ( e . Button == MouseButtons . Left )
209
+ switch ( e . Button )
194
210
{
195
- if ( menu . Visible )
196
- {
197
- menu . Close ( ) ;
198
- }
199
- else
200
- {
201
- var p = System . Windows . Forms . Cursor . Position ;
202
- menu . Show ( p ) ;
203
- }
211
+ case MouseButtons . Left :
212
+ _viewModel . ToggleFlowLauncher ( ) ;
213
+ break ;
214
+
215
+ case MouseButtons . Right :
216
+ contextMenu . IsOpen = true ;
217
+ break ;
204
218
}
205
219
} ;
206
220
}
0 commit comments