@@ -30,6 +30,7 @@ public partial class MainWindow
30
30
private bool isProgressBarStoryboardPaused ;
31
31
private Settings _settings ;
32
32
private NotifyIcon _notifyIcon ;
33
+ private ContextMenu contextMenu ;
33
34
private MainViewModel _viewModel ;
34
35
35
36
#endregion
@@ -159,14 +160,19 @@ private void InitializePosition()
159
160
160
161
private void UpdateNotifyIconText ( )
161
162
{
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" ) ;
163
+ var menu = contextMenu ;
164
+
165
+ var header = new MenuItem ( ) { Header = "Flow Launcher" , IsEnabled = false } ;
166
+ var open = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) } ;
167
+ var settings = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" ) } ;
168
+ var exit = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" ) } ;
169
+ menu . Items [ 0 ] = header ;
170
+ menu . Items [ 1 ] = open ;
171
+ menu . Items [ 2 ] = settings ;
172
+ menu . Items [ 3 ] = exit ;
173
+ open . Click += ( o , e ) => Visibility = Visibility . Visible ;
174
+ settings . Click += ( o , e ) => App . API . OpenSettingDialog ( ) ;
175
+ exit . Click += ( o , e ) => Close ( ) ;
170
176
}
171
177
172
178
private void InitializeNotifyIcon ( )
@@ -178,29 +184,33 @@ private void InitializeNotifyIcon()
178
184
Visible = ! _settings . HideNotifyIcon
179
185
} ;
180
186
var menu = new ContextMenuStrip ( ) ;
181
- var items = menu . Items ;
187
+ contextMenu = new ContextMenu ( ) ;
188
+
189
+ MenuItem header = new MenuItem ( ) { Header = "Flow Launcher" , IsEnabled = false } ;
190
+ MenuItem open = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) } ;
191
+ MenuItem settings = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTraySettings" ) } ;
192
+ MenuItem exit = new MenuItem ( ) { Header = InternationalizationManager . Instance . GetTranslation ( "iconTrayExit" ) } ;
182
193
183
- var open = items . Add ( InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) ) ;
184
194
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" ) ) ;
195
+ settings . Click += ( o , e ) => App . API . OpenSettingDialog ( ) ;
188
196
exit . Click += ( o , e ) => Close ( ) ;
197
+ contextMenu . Items . Add ( header ) ;
198
+ contextMenu . Items . Add ( open ) ;
199
+ contextMenu . Items . Add ( settings ) ;
200
+ contextMenu . Items . Add ( exit ) ;
189
201
190
- _notifyIcon . ContextMenuStrip = menu ;
202
+ _notifyIcon . ContextMenuStrip = menu ; /*it need for close the context menu. if not, context menu can't close. */
191
203
_notifyIcon . MouseClick += ( o , e ) =>
192
204
{
193
- if ( e . Button == MouseButtons . Left )
205
+ switch ( e . Button )
194
206
{
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
- }
207
+ case MouseButtons . Left :
208
+ _viewModel . ToggleFlowLauncher ( ) ;
209
+ break ;
210
+
211
+ case MouseButtons . Right :
212
+ contextMenu . IsOpen = true ;
213
+ break ;
204
214
}
205
215
} ;
206
216
}
0 commit comments