@@ -30,6 +30,7 @@ public partial class MainWindow
3030 private bool isProgressBarStoryboardPaused ;
3131 private Settings _settings ;
3232 private NotifyIcon _notifyIcon ;
33+ private ContextMenu contextMenu ;
3334 private MainViewModel _viewModel ;
3435
3536 #endregion
@@ -159,14 +160,19 @@ private void InitializePosition()
159160
160161 private void UpdateNotifyIconText ( )
161162 {
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 ( ) ;
170176 }
171177
172178 private void InitializeNotifyIcon ( )
@@ -178,29 +184,33 @@ private void InitializeNotifyIcon()
178184 Visible = ! _settings . HideNotifyIcon
179185 } ;
180186 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" ) } ;
182193
183- var open = items . Add ( InternationalizationManager . Instance . GetTranslation ( "iconTrayOpen" ) ) ;
184194 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 ( ) ;
188196 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 ) ;
189201
190- _notifyIcon . ContextMenuStrip = menu ;
202+ _notifyIcon . ContextMenuStrip = menu ; /*it need for close the context menu. if not, context menu can't close. */
191203 _notifyIcon . MouseClick += ( o , e ) =>
192204 {
193- if ( e . Button == MouseButtons . Left )
205+ switch ( e . Button )
194206 {
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 ;
204214 }
205215 } ;
206216 }
0 commit comments