Index: javax/swing/JViewport.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JViewport.java,v retrieving revision 1.30 diff -u -r1.30 JViewport.java --- javax/swing/JViewport.java 12 Oct 2005 15:29:48 -0000 1.30 +++ javax/swing/JViewport.java 17 Oct 2005 13:44:50 -0000 @@ -142,6 +142,7 @@ */ protected ViewListener() { + // Nothing to do here. } /** @@ -398,12 +399,8 @@ public void setView(Component v) { - while (getComponentCount() > 0) - { - if (viewListener != null) - getView().removeComponentListener(viewListener); - //remove(0); - } + if (viewListener != null) + getView().removeComponentListener(viewListener); if (v != null) { @@ -456,6 +453,14 @@ return insets; } + + /** + * Overridden to return false, so the JViewport's paint method + * gets called instead of directly calling the children. This is necessary + * in order to get a useful clipping and translation on the children. + * + * @return false + */ public boolean isOptimizedDrawingEnabled() { return false;