瀏覽代碼

fix render update of vector layer with selected shape

Johann 5 年之前
父節點
當前提交
4919d7c4ae
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      lazpaintcontrols/lcvectororiginal.pas

+ 3 - 3
lazpaintcontrols/lcvectororiginal.pas

@@ -3236,9 +3236,9 @@ begin
       allRectF := rectF(0,0,ADest.Width,ADest.Height);
       FUnfrozenRangeStart := newUnfrozenRangeStart;
       FUnfrozenRangeEnd := newUnfrozenRangeEnd;
+      FreeAndNil(FFrozenShapesUnderSelection);
       if FUnfrozenRangeStart > 0 then
       begin
-        FreeAndNil(FFrozenShapesUnderSelection);
         FFrozenShapesUnderBounds := GetRenderBounds(rect(0,0,ADest.Width,ADest.Height), mOfs,
                                       0, FUnfrozenRangeStart-1);
         FFrozenShapesUnderBounds.Intersect(rect(0,0,ADest.Width,ADest.Height));
@@ -3263,10 +3263,10 @@ begin
       for i := FUnfrozenRangeStart to FUnfrozenRangeEnd-1 do
         if FShapes[i].GetRenderBounds(ADest.ClipRect, mOfs, []).IntersectsWith(clipRectF) then
           FShapes[i].Render(ADest, ARenderOffset, AMatrix, ADraft);
+      FreeAndNil(FFrozenShapesOverSelection);
       if FUnfrozenRangeEnd < FShapes.Count then
       begin
-        FreeAndNil(FFrozenShapesOverSelection);
-        FFrozenShapesOverBounds := GetRenderBounds(rect(0,0,ADest.Width,ADest.Height), AMatrix,
+        FFrozenShapesOverBounds := GetRenderBounds(rect(0,0,ADest.Width,ADest.Height), mOfs,
                                      FUnfrozenRangeEnd, FShapes.Count-1);
         FFrozenShapesOverBounds.Intersect(rect(0,0,ADest.Width,ADest.Height));
         FFrozenShapesOverSelection := TBGRABitmap.Create(FFrozenShapesOverBounds.Width, FFrozenShapesOverBounds.Height);