Commits

Anonymous committed 6fcb36a

calc65: #i116371# fix backgrounds for polypolygons in metafile

Comments (0)

Files changed (1)

drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx

 				{
 					// need to handle PolyPolygonHatchPrimitive2D here to support XPATHFILL_SEQ_BEGIN/XPATHFILL_SEQ_END
 					const primitive2d::PolyPolygonHatchPrimitive2D& rHatchCandidate = static_cast< const primitive2d::PolyPolygonHatchPrimitive2D& >(rCandidate);
+				    const attribute::FillHatchAttribute& rFillHatchAttribute = rHatchCandidate.getFillHatch();
 					basegfx::B2DPolyPolygon aLocalPolyPolygon(rHatchCandidate.getB2DPolyPolygon());
 
                     // #i112245# Metafiles use tools Polygon and are not able to have more than 65535 points
                     while(fillPolyPolygonNeededToBeSplit(aLocalPolyPolygon))
                         ;
 
+					if(rFillHatchAttribute.isFillBackground())
+					{
+						// with fixing #i111954# (see below) the possible background
+						// fill of a hatched object was lost.Generate a background fill 
+						// primitive and render it
+					    const primitive2d::Primitive2DReference xBackground(
+							new primitive2d::PolyPolygonColorPrimitive2D(
+								aLocalPolyPolygon, 
+								rHatchCandidate.getBackgroundColor()));
+						
+						process(primitive2d::Primitive2DSequence(&xBackground, 1));
+					}
+
                     SvtGraphicFill* pSvtGraphicFill = 0;
-				    const attribute::FillHatchAttribute& rFillHatchAttribute = rHatchCandidate.getFillHatch();
 				    aLocalPolyPolygon.transform(maCurrentTransformation);
 
 				    if(!mnSvtGraphicFillCount && aLocalPolyPolygon.count())