JComponent.getPreferredSize lets the ComponentUI override a manually set preferredSize. This is not allowed. The priority is as follows:

(0. constrained by minimumSize)
1. user set preferredSize
2. ComponentUI preferredSize
3. Container preferredSize (LayoutManager)
4. Component preferredSize

This is fixed.

2005-06-27  Roman Kennke  <[EMAIL PROTECTED]>

       * javax/swing/JComponent.java
(getPreferredSize): Don't let the UI replace a manually set preferred
       size.

/Roman

Index: javax/swing/JComponent.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v
retrieving revision 1.46
diff -u -r1.46 JComponent.java
--- javax/swing/JComponent.java 20 Jun 2005 14:35:53 -0000      1.46
+++ javax/swing/JComponent.java 27 Jun 2005 14:57:18 -0000
@@ -1022,12 +1022,13 @@
     if (preferredSize != null)
       prefSize = preferredSize;
 
-    if (ui != null)
+    else if (ui != null)
       {
         Dimension s = ui.getPreferredSize(this);
         if (s != null)
           prefSize = s;
       }
+
     if (prefSize == null)
       prefSize = super.getPreferredSize();
     // make sure that prefSize is not smaller than minSize
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to