Skip to content

Commit 3f95385

Browse files
committed
- Change Tray Menu to context menu for design
1 parent 9a53015 commit 3f95385

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)