Fix dirty coords for our overlay so it all lines up and works. Yay!
And some tabs -> spaces while I was there. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@123 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -107,13 +107,13 @@ public class ActiveRepaintManager extends RepaintManager
|
|||||||
|
|
||||||
// make sure that the component is actually in a window or applet
|
// make sure that the component is actually in a window or applet
|
||||||
// that is showing
|
// that is showing
|
||||||
if (getRoot(vroot) == null) {
|
if (getRoot(vroot) == null) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.info("Skipping rootless component [comp=" + toString(comp) +
|
Log.info("Skipping rootless component [comp=" + toString(comp) +
|
||||||
", vroot=" + toString(vroot) + "].");
|
", vroot=" + toString(vroot) + "].");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the invalid component to our list and we'll validate it on the next frame
|
// add the invalid component to our list and we'll validate it on the next frame
|
||||||
if (!ListUtil.containsRef(_invalid, vroot)) {
|
if (!ListUtil.containsRef(_invalid, vroot)) {
|
||||||
@@ -142,12 +142,12 @@ public class ActiveRepaintManager extends RepaintManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if this component is already dirty, simply expand their existing dirty rectangle
|
// if this component is already dirty, simply expand their existing dirty rectangle
|
||||||
Rectangle drect = (Rectangle)_dirty.get(comp);
|
Rectangle drect = (Rectangle)_dirty.get(comp);
|
||||||
if (drect != null) {
|
if (drect != null) {
|
||||||
drect.add(x, y);
|
drect.add(x, y);
|
||||||
drect.add(x+width, y+height);
|
drect.add(x+width, y+height);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure this component has a valid root
|
// make sure this component has a valid root
|
||||||
if (getRoot(comp) == null) {
|
if (getRoot(comp) == null) {
|
||||||
@@ -171,7 +171,7 @@ public class ActiveRepaintManager extends RepaintManager
|
|||||||
*/
|
*/
|
||||||
protected Component getRoot (Component comp)
|
protected Component getRoot (Component comp)
|
||||||
{
|
{
|
||||||
for (Component c = comp; c != null; c = c.getParent()) {
|
for (Component c = comp; c != null; c = c.getParent()) {
|
||||||
boolean hidden = !c.isDisplayable();
|
boolean hidden = !c.isDisplayable();
|
||||||
// on the mac, the JRootPane is invalidated before it is visible and is never again
|
// on the mac, the JRootPane is invalidated before it is visible and is never again
|
||||||
// invalidated or repainted, so we punt and allow all invisible components to be
|
// invalidated or repainted, so we punt and allow all invisible components to be
|
||||||
@@ -179,25 +179,25 @@ public class ActiveRepaintManager extends RepaintManager
|
|||||||
if (!RunAnywhere.isMacOS()) {
|
if (!RunAnywhere.isMacOS()) {
|
||||||
hidden |= !c.isVisible();
|
hidden |= !c.isVisible();
|
||||||
}
|
}
|
||||||
if (hidden) {
|
if (hidden) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (c instanceof Window || c instanceof Applet) {
|
if (c instanceof Window || c instanceof Applet) {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
public synchronized Rectangle getDirtyRegion (JComponent comp)
|
public synchronized Rectangle getDirtyRegion (JComponent comp)
|
||||||
{
|
{
|
||||||
Rectangle drect = (Rectangle)_dirty.get(comp);
|
Rectangle drect = (Rectangle)_dirty.get(comp);
|
||||||
// copy the rectangle if we found one, otherwise create an empty rectangle because we don't
|
// copy the rectangle if we found one, otherwise create an empty rectangle because we don't
|
||||||
// want them leaving empty handed
|
// want them leaving empty handed
|
||||||
return (drect == null) ? new Rectangle(0, 0, 0, 0) : new Rectangle(drect);
|
return (drect == null) ? new Rectangle(0, 0, 0, 0) : new Rectangle(drect);
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
public synchronized void markCompletelyClean (JComponent comp)
|
public synchronized void markCompletelyClean (JComponent comp)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -135,7 +135,8 @@ public class MediaOverlay
|
|||||||
_dirty = _metamgr.getRegionManager().getDirtyRegions();
|
_dirty = _metamgr.getRegionManager().getDirtyRegions();
|
||||||
for (int ii = 0; ii < _dirty.length; ii++) {
|
for (int ii = 0; ii < _dirty.length; ii++) {
|
||||||
Rectangle dirty = _dirty[ii];
|
Rectangle dirty = _dirty[ii];
|
||||||
repmgr.addDirtyRegion(root, dirty.x, dirty.y, dirty.width, dirty.height);
|
repmgr.addDirtyRegion(root, dirty.x - root.getX(), dirty.y - root.getY(),
|
||||||
|
dirty.width, dirty.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user