diff --git a/src/java/com/threerings/media/SafeScrollPane.java b/src/java/com/threerings/media/SafeScrollPane.java index ac8727895..0425fbf0f 100644 --- a/src/java/com/threerings/media/SafeScrollPane.java +++ b/src/java/com/threerings/media/SafeScrollPane.java @@ -1,10 +1,12 @@ // -// $Id: SafeScrollPane.java,v 1.4 2002/10/06 20:57:36 mdb Exp $ +// $Id: SafeScrollPane.java,v 1.5 2002/11/05 05:51:18 mdb Exp $ package com.threerings.media; import java.awt.Component; +import java.awt.Point; +import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.JViewport; @@ -24,7 +26,20 @@ public class SafeScrollPane extends JScrollPane protected JViewport createViewport () { - JViewport vp = new JViewport(); + JViewport vp = new JViewport() { + public void setViewPosition (Point p) { + super.setViewPosition(p); + // simple scroll mode results in setViewPosition causing + // our view to become invalid, but nothing ever happens to + // queue up a revalidate for said view, so we have to do + // it here + Component c = getView(); + if (c instanceof JComponent) { + System.out.println("Revalidating " + c); + ((JComponent)c).revalidate(); + } + } + }; vp.setScrollMode(JViewport.SIMPLE_SCROLL_MODE); return vp; }