diff options
Diffstat (limited to 'libjava/gnu/java/awt')
| -rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java | 9 | ||||
| -rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java | 30 |
2 files changed, 30 insertions, 9 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java index 551d05ded8f..27867321c3c 100644 --- a/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java +++ b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java @@ -80,13 +80,4 @@ public class GtkDialogPeer extends GtkWindowPeer args.add ("allow_shrink", dialog.isResizable ()); args.add ("allow_grow", dialog.isResizable ()); } - - public void handleEvent (AWTEvent event) - { -// int id = event.getID(); - -// if (id == WindowEvent.WINDOW_CLOSING) -// System.out.println ("got a closing event"); - } - } diff --git a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java index 8875913d4fc..821afa929f1 100644 --- a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java +++ b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java @@ -42,6 +42,8 @@ import java.awt.Component; import java.awt.Dimension; import java.awt.Insets; import java.awt.Window; +import java.awt.Frame; +import java.awt.event.WindowEvent; import java.awt.peer.WindowPeer; public class GtkWindowPeer extends GtkContainerPeer @@ -56,6 +58,9 @@ public class GtkWindowPeer extends GtkContainerPeer static protected final int GDK_WINDOW_TYPE_HINT_DOCK = 6; static protected final int GDK_WINDOW_TYPE_HINT_DESKTOP = 7; + private boolean hasBeenShown = false; + private int oldState = Frame.NORMAL; + // Unfortunately, X does not provide a clean way to calculate the // dimensions of a window's borders before it has been displayed. // So when creating the application's first window we guess the @@ -211,4 +216,29 @@ public class GtkWindowPeer extends GtkContainerPeer awtComponent.getHeight()); nativeSetVisible (b); } + + void postWindowEvent (int id, Window opposite, int newState) + { + if (id == WindowEvent.WINDOW_OPENED) + { + // Post a WINDOW_OPENED event the first time this window is shown. + if (!hasBeenShown) + { + q.postEvent (new WindowEvent ((Window) awtComponent, id, + opposite)); + hasBeenShown = true; + } + } + else if (id == WindowEvent.WINDOW_STATE_CHANGED) + { + if (oldState != newState) + { + q.postEvent (new WindowEvent ((Window) awtComponent, id, opposite, + oldState, newState)); + oldState = newState; + } + } + else + q.postEvent (new WindowEvent ((Window) awtComponent, id, opposite)); + } } |

