From 283fd15f19c33c929a3701d8f49590d300b90c7a Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sat, 20 Jan 2007 03:58:18 +0000 Subject: [PATCH] Some fixes but components are still not getting properly repainted in all cases for some reason. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@117 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/java/com/threerings/media/MediaOverlay.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/java/com/threerings/media/MediaOverlay.java b/src/java/com/threerings/media/MediaOverlay.java index 854b06ab..6465adf7 100644 --- a/src/java/com/threerings/media/MediaOverlay.java +++ b/src/java/com/threerings/media/MediaOverlay.java @@ -129,12 +129,14 @@ public class MediaOverlay */ public void propagateDirtyRegions (ActiveRepaintManager repmgr, JRootPane root) { - // this will clear out our region manager, so we need to keep these around for our - // subsequent call to paint - _dirty = _metamgr.getRegionManager().getDirtyRegions(); - for (int ii = 0; ii < _dirty.length; ii++) { - Rectangle dirty = _dirty[ii]; - repmgr.addDirtyRegion(root, dirty.x, dirty.y, dirty.width, dirty.height); + if (_metamgr.needsPaint()) { + // this will clear out our dirty regions, so we need to keep these around for our + // subsequent call to paint + _dirty = _metamgr.getRegionManager().getDirtyRegions(); + for (int ii = 0; ii < _dirty.length; ii++) { + Rectangle dirty = _dirty[ii]; + repmgr.addDirtyRegion(root, dirty.x, dirty.y, dirty.width, dirty.height); + } } } @@ -146,12 +148,13 @@ public class MediaOverlay */ public boolean paint (Graphics2D gfx) { - if (_metamgr.needsPaint()) { + if (_dirty != null) { for (int ii = 0; ii < _dirty.length; ii++) { gfx.setClip(_dirty[ii]); _metamgr.paintMedia(gfx, MediaConstants.BACK, _dirty[ii]); _metamgr.paintMedia(gfx, MediaConstants.FRONT, _dirty[ii]); } + _dirty = null; return true; } return false;