diff options
author | Lillian Angel <langel@redhat.com> | 2005-09-26 15:19:59 +0000 |
---|---|---|
committer | Lillian Angel <langel@redhat.com> | 2005-09-26 15:19:59 +0000 |
commit | fa6c9edca12c2d6268743fc44bd0024cf916397f (patch) | |
tree | e3a2fcb76ddd8deb250801efb554109d2a539214 /gnu | |
parent | c9c26a94edaaabc679f407df7684a8718c377353 (diff) | |
download | classpath-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.java | 30 |
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 ()); |