This fixes GtkCanvasPeer to override preferredSize() instead of getPreferredSize(). The latter never gets called (I checked that against the RI and added @specnote to ComponentPeer about that fact).

2006-08-03  Roman Kennke  <[EMAIL PROTECTED]>

        PR 28571
        * gnu/java/awt/peer/gtk/GtkCanvasPeer.java
        (getPreferredSize): Renamed method to preferredSize(). That's
        the one that gets called from java.awt.*.
        * java/awt/peer/ComponentPeer.java
        (getPreferredSize): Added specnote about this method never
        beeing called in the RI.
        (getMinimumSize): Added specnote about this method never
        beeing called in the RI.

/Roman
Index: gnu/java/awt/peer/gtk/GtkCanvasPeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkCanvasPeer.java,v
retrieving revision 1.18
diff -u -1 -2 -r1.18 GtkCanvasPeer.java
--- gnu/java/awt/peer/gtk/GtkCanvasPeer.java	25 May 2006 15:29:36 -0000	1.18
+++ gnu/java/awt/peer/gtk/GtkCanvasPeer.java	3 Aug 2006 09:54:16 -0000
@@ -44,17 +44,17 @@
 
 public class GtkCanvasPeer extends GtkComponentPeer implements CanvasPeer
 {
   native void create ();
 
   public GtkCanvasPeer (Canvas c)
   {
     super (c);
   }
 
   // Preferred size for a drawing widget is always what the user
   // requested.
-  public Dimension getPreferredSize ()
+  public Dimension preferredSize()
   {
-    return awtComponent.getSize ();
+    return awtComponent.getSize();
   }
 }
Index: java/awt/peer/ComponentPeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/peer/ComponentPeer.java,v
retrieving revision 1.17
diff -u -1 -2 -r1.17 ComponentPeer.java
--- java/awt/peer/ComponentPeer.java	25 Jul 2006 22:41:46 -0000	1.17
+++ java/awt/peer/ComponentPeer.java	3 Aug 2006 09:54:16 -0000
@@ -144,32 +144,44 @@
    * Returns the location of this component in screen coordinates. This is
    * called by [EMAIL PROTECTED] Component#getLocationOnScreen()}.
    *
    * @return the location of this component in screen coordinates
    */
   Point getLocationOnScreen();
 
   /**
    * Returns the minimum size for the component. This is called by
    * [EMAIL PROTECTED] Component#getMinimumSize()}.
    *
    * @return the minimum size for the component
+   *
+   * @specnote Presumably this method got added to replace minimumSize().
+   *           However, testing shows that this is never called in the RI
+   *           (tested with JDK5), but instead minimumSize() is called
+   *           directly. It is advisable to implement this method to delegate
+   *           to minimumSize() and put the real implementation in there.
    */
   Dimension getMinimumSize();
 
   /**
    * Returns the preferred size for the component. This is called by
    * [EMAIL PROTECTED] Component#getPreferredSize()}.
    *
    * @return the preferred size for the component
+   *
+   * @specnote Presumably this method got added to replace preferredSize().
+   *           However, testing shows that this is never called in the RI
+   *           (tested with JDK5), but instead preferredSize() is called
+   *           directly. It is advisable to implement this method to delegate
+   *           to preferredSize() and put the real implementation in there.
    */
   Dimension getPreferredSize();
 
   /**
    * Returns the toolkit that created this peer.
    *
    * @return the toolkit that created this peer
    */
   Toolkit getToolkit();
 
   /**
    * Handles the given event. This is called from

Reply via email to