From 2fa77ea831faa9f5950f42c2f1caacec95acb640 Mon Sep 17 00:00:00 2001 From: teo_sarca Date: Wed, 25 Apr 2007 09:37:25 +0000 Subject: [PATCH] [ 1707221 ] Windows are not showing when they are minimize http://sourceforge.net/tracker/index.php?func=detail&aid=1707221&group_id=176962&atid=879332 --- client/src/org/compiere/apps/AEnv.java | 28 ++++++++++++++------ client/src/org/compiere/apps/WindowMenu.java | 2 +- dbPort/src/org/compiere/util/Env.java | 5 ++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/client/src/org/compiere/apps/AEnv.java b/client/src/org/compiere/apps/AEnv.java index 36e93d4d09..1a45ff83aa 100644 --- a/client/src/org/compiere/apps/AEnv.java +++ b/client/src/org/compiere/apps/AEnv.java @@ -41,6 +41,21 @@ import org.compiere.util.*; */ public final class AEnv { + /** + * Show window: de-iconify and bring it to front + * @author teo_sarca [ 1707221 ] + */ + public static void showWindow(Window window) { + window.setVisible(true); + if (window instanceof Frame) { + Frame f = (Frame)window; + int state = f.getExtendedState(); + if ((state & Frame.ICONIFIED) > 0) + f.setExtendedState(state & ~Frame.ICONIFIED); + } + window.toFront(); + } + /** * Show in the center of the screen. * (pack, set location and set visibility) @@ -49,8 +64,7 @@ public final class AEnv public static void showCenterScreen(Window window) { positionCenterScreen(window); - window.setVisible(true); - window.toFront(); + showWindow(window); } // showCenterScreen /** @@ -83,8 +97,7 @@ public final class AEnv public static void showScreen(Window window, int position) { positionScreen(window, position); - window.setVisible(true); - window.toFront(); + showWindow(window); } // showScreen @@ -164,8 +177,7 @@ public final class AEnv public static void showCenterWindow(Window parent, Window window) { positionCenterWindow(parent, window); - window.setVisible(true); - window.toFront(); + showWindow(window); } // showCenterWindow /** @@ -223,7 +235,7 @@ public final class AEnv // + " - Parent loc x=" + pLoc.x + " y=" + y + " w=" + pSize.getWidth() + " h=" + pSize.getHeight()); window.setLocation(x + insets.left, y + insets.top); } // positionCenterScreen - + /************************************************************************* * Get Button @@ -382,7 +394,7 @@ public final class AEnv } else if (actionCommand.equals("Home")) { - Env.getWindow(0).toFront(); + showWindow(Env.getWindow(0)); } // Tools Menu ------------------------ diff --git a/client/src/org/compiere/apps/WindowMenu.java b/client/src/org/compiere/apps/WindowMenu.java index 4a56c79641..faebf1efbd 100644 --- a/client/src/org/compiere/apps/WindowMenu.java +++ b/client/src/org/compiere/apps/WindowMenu.java @@ -127,7 +127,7 @@ public class WindowMenu extends JMenu { menu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { CFrame frame = ((ChildMenuItem)ae.getSource()).getWindow(); - frame.toFront(); + AEnv.showWindow(frame); } }); //menu.setIcon(array[i].getIconImage()); diff --git a/dbPort/src/org/compiere/util/Env.java b/dbPort/src/org/compiere/util/Env.java index e10f002ca0..e29e012852 100644 --- a/dbPort/src/org/compiere/util/Env.java +++ b/dbPort/src/org/compiere/util/Env.java @@ -1474,6 +1474,11 @@ public final class Env s_hiddenWindows.remove(i); s_log.info(hidden.toString()); hidden.setVisible(true); + // De-iconify window - teo_sarca [ 1707221 ] + int state = hidden.getExtendedState(); + if ((state & CFrame.ICONIFIED) > 0) + hidden.setExtendedState(state & ~CFrame.ICONIFIED); + // hidden.toFront(); return hidden; }