From 2d08889977ea19d715a6794d7b5a0579f44c01b1 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 9 May 2016 12:45:29 +0000
Subject: [PATCH] DTG swing event handling tweaks

---
 .../src/net/i2p/desktopgui/TrayManager.java           | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/apps/desktopgui/src/net/i2p/desktopgui/TrayManager.java b/apps/desktopgui/src/net/i2p/desktopgui/TrayManager.java
index 2df63f2af9..6217e8d88b 100644
--- a/apps/desktopgui/src/net/i2p/desktopgui/TrayManager.java
+++ b/apps/desktopgui/src/net/i2p/desktopgui/TrayManager.java
@@ -102,9 +102,12 @@ abstract class TrayManager {
             public void mousePressed(MouseEvent e)  { handle(e); }
             public void mouseReleased(MouseEvent e) { handle(e); }
             private void handle(MouseEvent e) {
+                //System.out.println("Button " + e.getButton() + " Frame was visible? " +
+                //                   frame.isVisible() + " menu was visible? " + menu.isVisible() +
+                //                   " trigger? " + menu.isPopupTrigger(e));
                 // http://stackoverflow.com/questions/17258250/changing-the-laf-of-a-popupmenu-for-a-trayicon-in-java
-                // menu visible check is failsafe, for when menu gets cancelled
-                if (!frame.isVisible() || !menu.isVisible()) {
+                // menu visible check is never true
+                if (!frame.isVisible() /* || !menu.isVisible() */ ) {
                     frame.setLocation(e.getX(), e.getY());
                     frame.setVisible(true);
                     menu.show(frame, 0, 0);
@@ -113,8 +116,8 @@ abstract class TrayManager {
             }
         });
         menu.addPopupMenuListener(new PopupMenuListener() {
-            public void popupMenuCanceled(PopupMenuEvent e)            { frame.setVisible(false); }
-            public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {}
+            public void popupMenuCanceled(PopupMenuEvent e)            { /* frame.setVisible(false); */ }
+            public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { frame.setVisible(false); }
             public void popupMenuWillBecomeVisible(PopupMenuEvent e)   {}
         });
         // this is to make it go away when we click elsewhere
-- 
GitLab