summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLillian Angel <langel@redhat.com>2005-09-26 15:19:59 +0000
committerLillian Angel <langel@redhat.com>2005-09-26 15:19:59 +0000
commitfa6c9edca12c2d6268743fc44bd0024cf916397f (patch)
treee3a2fcb76ddd8deb250801efb554109d2a539214 /gnu
parentc9c26a94edaaabc679f407df7684a8718c377353 (diff)
downloadclasspath-fa6c9edca12c2d6268743fc44bd0024cf916397f.tar.gz
2005-09-26 Lillian Angel <langel@redhat.com>
* gnu/java/awt/peer/gtk/GtkDialogPeer.java (create): If the dialog is a toolTip or a PopupMenu, its type should be set to: GDK_WINDOW_TYPE_HINT_MENU, so the parent window does not lose focus. * javax/swing/JTree.java (setModel): Should update the UI everytime the model is changed. * javax/swing/plaf/basic/BasicTreeUI.java (installUI): Should not set the root to be visible. (paintControlIcons): changed to use getVisibleRect. * javax/swing/plaf/metal/MetalTreeUI.java (installUI): Should not set the root to be visible.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/java/awt/peer/gtk/GtkDialogPeer.java30
1 files changed, 26 insertions, 4 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkDialogPeer.java b/gnu/java/awt/peer/gtk/GtkDialogPeer.java
index cfb54d6e9..785a517f0 100644
--- a/gnu/java/awt/peer/gtk/GtkDialogPeer.java
+++ b/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,11 +86,29 @@ public class GtkDialogPeer extends GtkWindowPeer
void create ()
{
- // Create a decorated dialog window.
- create (GDK_WINDOW_TYPE_HINT_DIALOG,
- !((Dialog) awtComponent).isUndecorated ());
-
Dialog dialog = (Dialog) awtComponent;
+ int type = GDK_WINDOW_TYPE_HINT_DIALOG;
+
+ if (dialog instanceof JDialog)
+ {
+ Class heavyWeightClass;
+ try
+ {
+ heavyWeightClass = JPopupMenu.class.
+ forName("javax.swing.JPopupMenu$HeavyWeightPopup");
+ }
+ 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 ());