diff --git a/pom.xml b/pom.xml
index 20a4ffab2..c56af2617 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
2.1.0-rc1
2.4.4
- 1.1.0
+ 1.1.1
1.1.2
1.1.2
1.1.0
diff --git a/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java b/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java
index 79f1dd628..2d0699064 100644
--- a/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java
+++ b/src/main/java/org/cryptomator/ui/traymenu/AwtTrayMenuController.java
@@ -19,6 +19,8 @@ import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.util.List;
@CheckAvailability
@@ -58,6 +60,19 @@ public class AwtTrayMenuController implements TrayMenuController {
addChildren(menu, items);
}
+
+ @Override
+ public void onBeforeShow(Runnable listener) {
+ SystemTray systemTray = SystemTray.getSystemTray();
+ TrayIcon trayIcon = systemTray.getTrayIcons()[0];
+ trayIcon.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ listener.run();
+ }
+ });
+ }
+
private void addChildren(Menu menu, List items) {
for (var item : items) {
// TODO: use Pattern Matching for switch, once available
diff --git a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
index eed41e318..83dca0370 100644
--- a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
+++ b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
@@ -70,32 +70,9 @@ public class TrayMenuBuilder {
trayMenu.showTrayIcon(image.readAllBytes(), this::showMainWindow, "Cryptomator");
SystemTray tray = SystemTray.getSystemTray();
TrayIcon trayIcon = tray.getTrayIcons()[0];
- trayIcon.addMouseListener(new MouseListener() {
- @Override
- public void mouseClicked(MouseEvent e) {
- for (Vault vault : vaults) {
- VaultListManager.redetermineVaultState(vault);
- }
- }
-
- @Override
- public void mousePressed(MouseEvent e) {
-
- }
-
- @Override
- public void mouseReleased(MouseEvent e) {
-
- }
-
- @Override
- public void mouseEntered(MouseEvent e) {
-
- }
-
- @Override
- public void mouseExited(MouseEvent e) {
-
+ trayMenu.onBeforeShow(() -> {
+ for (Vault vault : vaults) {
+ VaultListManager.redetermineVaultState(vault);
}
});
rebuildMenu();