Index: javax/swing/JComponent.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v retrieving revision 1.62 diff -u -r1.62 JComponent.java --- javax/swing/JComponent.java 25 Sep 2005 13:10:15 -0000 1.62 +++ javax/swing/JComponent.java 25 Sep 2005 13:53:31 -0000 @@ -53,6 +53,7 @@ import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.Window; import java.awt.dnd.DropTarget; import java.awt.event.ActionEvent; @@ -64,7 +65,6 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; -import java.awt.image.ImageObserver; import java.awt.peer.LightweightPeer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -183,21 +183,21 @@ /** * An explicit value for the component's preferred size; if not set by a * user, this is calculated on the fly by delegating to the address@hidden - * ComponentUI.getPreferredSize} method on the address@hidden #ui} property. + * ComponentUI#getPreferredSize} method on the address@hidden #ui} property. */ Dimension preferredSize; /** * An explicit value for the component's minimum size; if not set by a * user, this is calculated on the fly by delegating to the address@hidden - * ComponentUI.getMinimumSize} method on the address@hidden #ui} property. + * ComponentUI#getMinimumSize} method on the address@hidden #ui} property. */ Dimension minimumSize; /** * An explicit value for the component's maximum size; if not set by a * user, this is calculated on the fly by delegating to the address@hidden - * ComponentUI.getMaximumSize} method on the address@hidden #ui} property. + * ComponentUI#getMaximumSize} method on the address@hidden #ui} property. */ Dimension maximumSize; @@ -265,14 +265,14 @@ /** * A set of flags indicating which debugging graphics facilities should * be enabled on this component. The values should be a combination of - * address@hidden DebugGraphics.NONE_OPTION}, address@hidden DebugGraphics.LOG_OPTION}, - * address@hidden DebugGraphics.FLASH_OPTION}, or address@hidden - * DebugGraphics.BUFFERED_OPTION}. + * address@hidden DebugGraphics#NONE_OPTION}, address@hidden DebugGraphics#LOG_OPTION}, + * address@hidden DebugGraphics#FLASH_OPTION}, or address@hidden + * DebugGraphics#BUFFERED_OPTION}. * - * @see setDebugGraphicsOptions - * @see getDebugGraphicsOptions + * @see #setDebugGraphicsOptions + * @see #getDebugGraphicsOptions * @see DebugGraphics - * @see getComponentGraphics + * @see #getComponentGraphics */ int debugGraphicsOptions; @@ -335,8 +335,8 @@ * timed intervals, continuing off in the direction the mouse exited the * component, until the mouse is released or re-enters the component. * - * @see setAutoscrolls - * @see getAutoscrolls + * @see #setAutoscrolls + * @see #getAutoscrolls */ boolean autoscrolls = false; @@ -1512,6 +1512,9 @@ */ protected void paintChildren(Graphics g) { + Shape originalClip = g.getClip(); + Rectangle inner = SwingUtilities.calculateInnerArea(this, new Rectangle()); + g.clipRect(inner.x, inner.y, inner.width, inner.height); Component[] children = getComponents(); for (int i = children.length - 1; i >= 0; --i) { @@ -1541,6 +1544,7 @@ g.setClip(oldClip); } } + g.setClip(originalClip); } /**