summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-15 23:20:01 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-15 23:20:01 +0000
commit3b3101d8b5ae4f08a16c0b7111da6cad41bbd282 (patch)
treea5eb7cf42a51869cc8aa1fad7ad6a90cca47fdd8 /libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java
parent7e55c49d7d91ef9f09e93c1100119b1ab3652446 (diff)
downloadppe42-gcc-3b3101d8b5ae4f08a16c0b7111da6cad41bbd282.tar.gz
ppe42-gcc-3b3101d8b5ae4f08a16c0b7111da6cad41bbd282.zip
Imported GNU Classpath 0.19 + gcj-import-20051115.
* sources.am: Regenerated. * Makefile.in: Likewise. * scripts/makemake.tcl: Use glob -nocomplain. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107049 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java')
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java
index c2cbc37dce9..f5ba3ad2c5e 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java
@@ -44,6 +44,10 @@ import java.awt.Rectangle;
import java.awt.event.PaintEvent;
import java.awt.peer.DialogPeer;
+import javax.swing.JDialog;
+import javax.swing.JPopupMenu;
+import javax.swing.JToolTip;
+
public class GtkDialogPeer extends GtkWindowPeer
implements DialogPeer
{
@@ -82,10 +86,28 @@ public class GtkDialogPeer extends GtkWindowPeer
void create ()
{
- // Create a decorated dialog window.
- create (GDK_WINDOW_TYPE_HINT_DIALOG, true);
-
Dialog dialog = (Dialog) awtComponent;
+ int type = GDK_WINDOW_TYPE_HINT_DIALOG;
+
+ if (dialog instanceof JDialog)
+ {
+ Class heavyWeightClass;
+ try
+ {
+ heavyWeightClass = Class.forName("javax.swing.Popup$JWindowPopup");
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new AssertionError(e);
+ }
+
+ if (dialog.getClass() == heavyWeightClass
+ || ((JDialog) dialog).getContentPane() instanceof JToolTip)
+ type = GDK_WINDOW_TYPE_HINT_MENU;
+ }
+
+ // Create a decorated dialog window.
+ create (type, !((Dialog) awtComponent).isUndecorated ());
gtkWindowSetModal (dialog.isModal ());
setTitle (dialog.getTitle ());
OpenPOWER on IntegriCloud