Index: gnu/java/awt/peer/gtk/GtkDialogPeer.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java,v retrieving revision 1.27 diff -u -r1.27 GtkDialogPeer.java --- gnu/java/awt/peer/gtk/GtkDialogPeer.java 9 Sep 2005 15:40:35 -0000 1.27 +++ gnu/java/awt/peer/gtk/GtkDialogPeer.java 26 Sep 2005 15:12:46 -0000 @@ -44,6 +44,10 @@ 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 @@ 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 ()); Index: javax/swing/JTree.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JTree.java,v retrieving revision 1.41 diff -u -r1.41 JTree.java --- javax/swing/JTree.java 19 Sep 2005 15:46:19 -0000 1.41 +++ javax/swing/JTree.java 26 Sep 2005 15:12:46 -0000 @@ -1837,6 +1837,7 @@ treeModel = model; firePropertyChange(TREE_MODEL_PROPERTY, oldValue, model); + updateUI(); } /** Index: javax/swing/plaf/basic/BasicTreeUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java,v retrieving revision 1.82 diff -u -r1.82 BasicTreeUI.java --- javax/swing/plaf/basic/BasicTreeUI.java 23 Sep 2005 17:05:06 -0000 1.82 +++ javax/swing/plaf/basic/BasicTreeUI.java 26 Sep 2005 15:12:47 -0000 @@ -96,6 +96,7 @@ import javax.swing.plaf.TreeUI; import javax.swing.text.Caret; import javax.swing.tree.AbstractLayoutCache; import javax.swing.tree.DefaultTreeCellEditor; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.FixedHeightLayoutCache; @@ -1339,7 +1340,6 @@ TreeModel mod = tree.getModel(); setModel(mod); - tree.setRootVisible(true); if (mod != null) tree.expandPath(new TreePath(mod.getRoot())); treeSelectionModel = tree.getSelectionModel(); @@ -1399,7 +1399,7 @@ if (treeModel != null) { Object root = treeModel.getRoot(); - + paintRecursive(g, 0, 0, 0, 0, tree, treeModel, root); if (hasControlIcons()) @@ -3220,7 +3220,7 @@ TreePath path = new TreePath(getPathToRoot(node, 0)); Icon icon = getCurrentControlIcon(path); - Rectangle clip = g.getClipBounds(); + Rectangle clip = tree.getVisibleRect(); if (indentation > clip.x + clip.width + rightChildIndent || descent > clip.y + clip.height + getRowHeight()) return descent; Index: javax/swing/plaf/metal/MetalTreeUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalTreeUI.java,v retrieving revision 1.5 diff -u -r1.5 MetalTreeUI.java --- javax/swing/plaf/metal/MetalTreeUI.java 14 Sep 2005 19:06:02 -0000 1.5 +++ javax/swing/plaf/metal/MetalTreeUI.java 26 Sep 2005 15:12:47 -0000 @@ -168,7 +168,6 @@ createdCellEditor = true; TreeModel mod = tree.getModel(); setModel(mod); - tree.setRootVisible(true); if (mod != null) tree.expandPath(new TreePath(mod.getRoot())); treeSelectionModel = tree.getSelectionModel();