Bug fix #11530 & #11363: Raise (help, scinotes...) windows when iconified
[scilab.git] / scilab / modules / commons / src / java / org / scilab / modules / commons / gui / ScilabGUIUtilities.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - Calixte DENIZET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 package org.scilab.modules.commons.gui;
17
18 import java.awt.event.WindowEvent;
19 import java.awt.event.WindowFocusListener;
20
21 import javax.swing.JFrame;
22 import javax.swing.SwingUtilities;
23
24 /**
25  * GUI utilities
26  * @author Calixte DENIZET
27  */
28 public class ScilabGUIUtilities {
29
30     /**
31      * Bring a window to the front
32      * @param window the window to bring to the front
33      */
34     public static void toFront(final JFrame window) {
35         /*
36         WindowFocusListener listener = new WindowFocusListener() {
37
38             public void windowGainedFocus(WindowEvent e) {
39                 window.setAlwaysOnTop(true);
40             }
41
42             public void windowLostFocus(WindowEvent e) {
43                 window.setAlwaysOnTop(false);
44                 window.removeWindowFocusListener(this);
45             }
46         };
47         */
48         
49         int state = window.getExtendedState();
50         if((state & JFrame.ICONIFIED) == JFrame.ICONIFIED) {
51             window.setExtendedState(state - JFrame.ICONIFIED);
52         }
53
54         /* not sure to understand the goal of that Oo*/
55         //window.addWindowFocusListener(listener);
56         window.toFront();
57         SwingUtilities.invokeLater(new Runnable() {
58             public void run() {
59                 window.requestFocus();
60             }
61         });
62     }
63 }