|
From: vampire0 <vam...@us...> - 2025-04-01 02:40:17
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "jEdit core".
The branch, master has been updated
via e6f81220794a325f7c23f4e346574a32e1d42611 (commit)
via 3e1f03b4dd8d47d32ac7822269317be9d6ccf934 (commit)
via 2ccfedfc1908bccf45df1646b66916a19c5c0e8e (commit)
from dd6ced0c71837f1facd3133dc4ef94195f37d6c3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit: https://sourceforge.net/p/jedit/jEdit/ci/e6f81220794a325f7c23f4e346574a32e1d42611/
tree: https://sourceforge.net/p/jedit/jEdit/ci/e6f81220794a325f7c23f4e346574a32e1d42611/tree/
commit e6f81220794a325f7c23f4e346574a32e1d42611
Author: Björn Kautler <Bj...@Ka...>
Date: Tue Apr 1 04:36:37 2025 +0200
Deiconify from tray when necessary like when sending commands to the edit server that should show some GUI
diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt
index 70ad326fb..3c8dcdf1a 100644
--- a/doc/CHANGES.txt
+++ b/doc/CHANGES.txt
@@ -51,6 +51,9 @@ for contributing to this release.
- Use correct macOS name everywhere consistently (Björn Kautler)
+- Deiconify from tray when necessary like when sending commands to the edit
+ server that should show some GUI (Björn Kautler)
+
}}}
{{{ Miscellaneous
diff --git a/org/gjt/sp/jedit/View.java b/org/gjt/sp/jedit/View.java
index 074ecf6de..62c7b2ae5 100644
--- a/org/gjt/sp/jedit/View.java
+++ b/org/gjt/sp/jedit/View.java
@@ -1241,6 +1241,9 @@ public class View extends JFrame implements InputHandlerProvider
@Override
public void toFront()
{
+ // In case we are for example hidden to tray icon
+ jEdit.unhideGUI();
+
// Hack done to fix bringing the window to the front.
if (jEdit.getBooleanProperty("server.brokenToFront"))
setState(ICONIFIED);
commit: https://sourceforge.net/p/jedit/jEdit/ci/3e1f03b4dd8d47d32ac7822269317be9d6ccf934/
tree: https://sourceforge.net/p/jedit/jEdit/ci/3e1f03b4dd8d47d32ac7822269317be9d6ccf934/tree/
commit 3e1f03b4dd8d47d32ac7822269317be9d6ccf934
Author: Björn Kautler <Bj...@Ka...>
Date: Tue Apr 1 04:34:50 2025 +0200
Move GUI visibility handling to jEdit class
diff --git a/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java b/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java
index 301f6df04..cca90a30e 100644
--- a/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java
+++ b/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java
@@ -22,14 +22,10 @@
package org.gjt.sp.jedit.gui.tray;
//{{{ Imports
-import java.awt.Frame;
-import java.awt.Window;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
@@ -84,7 +80,7 @@ public class JEditSwingTrayIcon extends JEditTrayIcon
setToolTip(String.join(" | ", sl));
}
}
-
+
//{{{ setTrayIconArgs() method
@Override
void setTrayIconArgs(boolean restore, String userDir, String[] args)
@@ -97,60 +93,15 @@ public class JEditSwingTrayIcon extends JEditTrayIcon
//{{{ MyMouseAdapter class
private class MyMouseAdapter extends MouseAdapter
{
- private final Map<Window,Boolean> windowState = new HashMap<>();
-
@Override
public void mouseClicked(MouseEvent e)
{
if (e.getButton() != MouseEvent.BUTTON1)
return;
if (jEdit.getViewCount() == 0)
- {
EditServer.handleClient(restore, true, false, userDir, args);
- }
else
- {
- boolean newVisibilityState = !jEdit.getActiveView().isVisible();
- if (newVisibilityState)
- {
- for (Window window : Window.getOwnerlessWindows())
- {
- if (skipWindow(window))
- continue;
- Boolean previousState = windowState.get(window);
- if (previousState == null)
- window.setVisible(true);
- else if (previousState)
- window.setVisible(previousState);
- }
- windowState.clear();
- if (jEdit.getActiveView().getState() == Frame.ICONIFIED)
- jEdit.getActiveView().setState(Frame.NORMAL);
- jEdit.getActiveView().toFront();
- }
- else
- {
- for (Window window : Window.getOwnerlessWindows())
- {
- if (skipWindow(window))
- continue;
- windowState.put(window, window.isVisible());
- window.setVisible(false);
- }
- }
- }
+ jEdit.toggleGUIVisibility();
}
-
- //{{{ skipWindow method
- /**
- * Check if a window is not top level or systray icon
- * @param window the checked window
- * @return true if it is not toplevel or systray icon
- */
- private boolean skipWindow(Window window)
- {
- return window.getClass().getName().contains("Tray");
- } //}}}
-
} //}}}
}
diff --git a/org/gjt/sp/jedit/jEdit.java b/org/gjt/sp/jedit/jEdit.java
index c958f6c1d..abdc16456 100644
--- a/org/gjt/sp/jedit/jEdit.java
+++ b/org/gjt/sp/jedit/jEdit.java
@@ -80,6 +80,7 @@ import org.gjt.sp.jedit.visitors.SaveCaretInfoVisitor;
import org.gjt.sp.jedit.bufferset.BufferSetManager;
import org.gjt.sp.jedit.bufferset.BufferSet;
+import static java.lang.Boolean.FALSE;
import static java.lang.Integer.parseInt;
import static java.nio.file.StandardOpenOption.CREATE;
import static java.nio.file.StandardOpenOption.WRITE;
@@ -2811,6 +2812,65 @@ public class jEdit
//}}}
+ //{{{ GUI visibility methods
+
+ //{{{ toggleGUIVisibility() method
+ /**
+ * Iconify to tray
+ */
+ public static void toggleGUIVisibility()
+ {
+ if(getActiveView().isVisible())
+ hideGUI();
+ else
+ unhideGUI();
+ } //}}}
+
+ //{{{ hideGUI() method
+ public static void hideGUI()
+ {
+ if(!getActiveView().isVisible())
+ return;
+ for (Window window : Window.getOwnerlessWindows())
+ {
+ if (skipWindowHiding(window))
+ continue;
+ windowState.put(window, window.isVisible());
+ window.setVisible(false);
+ }
+ } //}}}
+
+ //{{{ unhideGUI() method
+ public static void unhideGUI()
+ {
+ if(getActiveView().isVisible())
+ return;
+ for (Window window : Window.getOwnerlessWindows())
+ {
+ if (skipWindowHiding(window))
+ continue;
+ Boolean previousState = windowState.get(window);
+ if (!FALSE.equals(previousState))
+ window.setVisible(true);
+ }
+ windowState.clear();
+ jEdit.getActiveView().toFront();
+ } //}}}
+
+ //{{{ skipWindowHiding method
+ /**
+ * Check if a window should be hidden.
+ *
+ * @param window the window to check
+ * @return true if the window should be hidden
+ */
+ private static boolean skipWindowHiding(Window window)
+ {
+ return window.getClass().getName().contains("Tray");
+ } //}}}
+
+ //}}}
+
//{{{ Miscellaneous methods
//{{{ relocateSettings() method
@@ -3334,6 +3394,7 @@ public class jEdit
private static BufferSetManager bufferSetManager;
private static BufferManagerImpl bufferManager = new BufferManagerImpl();
+ private static final Map<Window,Boolean> windowState = new HashMap<>();
private static ViewManagerImpl viewManager = new ViewManagerImpl();
private static EditPaneManager editPaneManager = new EditPaneManagerImpl(viewManager);
public static SystemManager systemManager = new SystemManager();
commit: https://sourceforge.net/p/jedit/jEdit/ci/2ccfedfc1908bccf45df1646b66916a19c5c0e8e/
tree: https://sourceforge.net/p/jedit/jEdit/ci/2ccfedfc1908bccf45df1646b66916a19c5c0e8e/tree/
commit 2ccfedfc1908bccf45df1646b66916a19c5c0e8e
Author: Björn Kautler <Bj...@Ka...>
Date: Tue Apr 1 04:33:27 2025 +0200
Move View.toFront hacks to View class so that all calls benefit
diff --git a/org/gjt/sp/jedit/EditServer.java b/org/gjt/sp/jedit/EditServer.java
index 288d08f96..e277a8cf6 100644
--- a/org/gjt/sp/jedit/EditServer.java
+++ b/org/gjt/sp/jedit/EditServer.java
@@ -253,26 +253,8 @@ public class EditServer extends Thread
{
// no background mode, and reusing existing view
View view = jEdit.getActiveView();
-
Buffer buffer = jEdit.openFiles(view,parent,args);
-
- // Hack done to fix bringing the window to the front.
- // At least on windows, Frame.toFront() doesn't cut it.
- // Remove the isWindows check if it's broken under other
- // OSes too.
- if (jEdit.getBooleanProperty("server.brokenToFront"))
- view.setState(java.awt.Frame.ICONIFIED);
-
- // un-iconify using JDK 1.3 API
- view.setState(java.awt.Frame.NORMAL);
- view.requestFocus();
view.toFront();
- // In some platforms (e.g. Windows), only setAlwaysOnTop works
- if (! view.isAlwaysOnTop())
- {
- view.setAlwaysOnTop(true);
- view.setAlwaysOnTop(false);
- }
return buffer;
}
} //}}}
diff --git a/org/gjt/sp/jedit/View.java b/org/gjt/sp/jedit/View.java
index 1d7bea5f6..074ecf6de 100644
--- a/org/gjt/sp/jedit/View.java
+++ b/org/gjt/sp/jedit/View.java
@@ -1237,6 +1237,26 @@ public class View extends JFrame implements InputHandlerProvider
this.waitSocket = waitSocket;
} //}}}
+ //{{{ toFront() method
+ @Override
+ public void toFront()
+ {
+ // Hack done to fix bringing the window to the front.
+ if (jEdit.getBooleanProperty("server.brokenToFront"))
+ setState(ICONIFIED);
+
+ // un-iconify using JDK 1.3 API
+ setState(NORMAL);
+ requestFocus();
+ super.toFront();
+ // In some platforms (e.g. Windows), only setAlwaysOnTop works
+ if (!isAlwaysOnTop())
+ {
+ setAlwaysOnTop(true);
+ setAlwaysOnTop(false);
+ }
+ } //}}}
+
//{{{ toString() method
@Override
public String toString()
-----------------------------------------------------------------------
Summary of changes:
doc/CHANGES.txt | 3 ++
org/gjt/sp/jedit/EditServer.java | 18 -------
org/gjt/sp/jedit/View.java | 23 +++++++++
org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java | 53 +-------------------
org/gjt/sp/jedit/jEdit.java | 61 +++++++++++++++++++++++
5 files changed, 89 insertions(+), 69 deletions(-)
hooks/post-receive
--
jEdit core
|