Fix multiple tray icons: create icon once, only update menu
SetupTrayIcon was called on every RefreshProfileList, creating a new NotifyIcon each time. Split into SetupTrayIcon (once) and UpdateTrayMenu (on refresh). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2b9ad5bf3c
commit
4f56f28ccb
|
|
@ -124,10 +124,26 @@ namespace StarfaceOutlookSync.UI
|
||||||
private void SetupTrayIcon()
|
private void SetupTrayIcon()
|
||||||
{
|
{
|
||||||
_trayMenu = new ContextMenuStrip();
|
_trayMenu = new ContextMenuStrip();
|
||||||
|
|
||||||
|
_trayIcon = new NotifyIcon
|
||||||
|
{
|
||||||
|
Text = "Starface Kontakt-Sync",
|
||||||
|
Icon = SystemIcons.Application,
|
||||||
|
ContextMenuStrip = _trayMenu,
|
||||||
|
Visible = true
|
||||||
|
};
|
||||||
|
|
||||||
|
_trayIcon.DoubleClick += (s, e) => ShowMainWindow();
|
||||||
|
|
||||||
|
UpdateTrayMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateTrayMenu()
|
||||||
|
{
|
||||||
|
_trayMenu.Items.Clear();
|
||||||
_trayMenu.Items.Add("Oeffnen", null, (s, e) => ShowMainWindow());
|
_trayMenu.Items.Add("Oeffnen", null, (s, e) => ShowMainWindow());
|
||||||
_trayMenu.Items.Add("-");
|
_trayMenu.Items.Add("-");
|
||||||
|
|
||||||
// Schnell-Sync fuer jedes Profil
|
|
||||||
var profiles = _profileManager.GetProfiles();
|
var profiles = _profileManager.GetProfiles();
|
||||||
foreach (var p in profiles.Where(p => p.Enabled))
|
foreach (var p in profiles.Where(p => p.Enabled))
|
||||||
{
|
{
|
||||||
|
|
@ -142,16 +158,6 @@ namespace StarfaceOutlookSync.UI
|
||||||
_trayMenu.Items.Add("-");
|
_trayMenu.Items.Add("-");
|
||||||
|
|
||||||
_trayMenu.Items.Add("Beenden", null, (s, e) => ExitApplication());
|
_trayMenu.Items.Add("Beenden", null, (s, e) => ExitApplication());
|
||||||
|
|
||||||
_trayIcon = new NotifyIcon
|
|
||||||
{
|
|
||||||
Text = "Starface Kontakt-Sync",
|
|
||||||
Icon = SystemIcons.Application, // Placeholder, wird durch eigenes Icon ersetzt
|
|
||||||
ContextMenuStrip = _trayMenu,
|
|
||||||
Visible = true
|
|
||||||
};
|
|
||||||
|
|
||||||
_trayIcon.DoubleClick += (s, e) => ShowMainWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetupAutoSync()
|
private void SetupAutoSync()
|
||||||
|
|
@ -219,7 +225,7 @@ namespace StarfaceOutlookSync.UI
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tray-Menu aktualisieren
|
// Tray-Menu aktualisieren
|
||||||
SetupTrayIcon();
|
UpdateTrayMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewProfile()
|
private void NewProfile()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue