fix regression introduced in [11881]: redraw is needed for unrendered features to be properly cleared. r=erilem (closes #3224)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11949 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Bruno Binet
2011-05-04 12:08:25 +00:00
parent 17f2843317
commit c0112c9bc6
2 changed files with 7 additions and 3 deletions

View File

@@ -145,8 +145,12 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
if (rendered) {
// keep track of what we have rendered for redraw
this.features[feature.id] = [feature, style];
this.pendingRedraw = true;
}
else {
// remove from features tracked for redraw
delete(this.features[feature.id]);
}
this.pendingRedraw = true;
}
if (this.pendingRedraw && !this.locked) {
this.redraw();

View File

@@ -171,7 +171,7 @@
{display: "none"}
);
t.eq(exp, false, "c) drawFeature returns false");
t.eq(count, 0, "c) redraw is not called when drawing a feature with display 'none'");
t.eq(count, 1, "c) redraw is called when drawing a feature with display 'none'");
renderer.clear();
// d) draw a point feature outside renderer extent
@@ -180,7 +180,7 @@
new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-1000, 0)), {}
);
t.eq(exp, false, "d) drawFeature returns false");
t.eq(count, 0, "d) redraw is not called when drawing a feature outside renderer extent");
t.eq(count, 1, "d) redraw is called when drawing a feature outside renderer extent");
renderer.clear();
map.destroy();