[WIN32K]
[reactos.git] / subsystems / win32 / win32k / objects / fillshap.c
index ad25bd6..5fd09fd 100644 (file)
@@ -481,6 +481,12 @@ NtGdiPolyPolyDraw( IN HDC hDC,
     DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
                             NULL, dc->rosdc.CombinedClip->rclBounds);
 
     DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
                             NULL, dc->rosdc.CombinedClip->rclBounds);
 
+    if (dc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
+        DC_vUpdateFillBrush(dc);
+
+    if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
+        DC_vUpdateLineBrush(dc);
+
     /* Perform the actual work */
     switch (iFunc)
     {
     /* Perform the actual work */
     switch (iFunc)
     {
@@ -681,6 +687,12 @@ NtGdiRectangle(HDC  hDC,
     }
 
     DC_vPrepareDCsForBlit(dc, rect, NULL, rect);
     }
 
     DC_vPrepareDCsForBlit(dc, rect, NULL, rect);
+    if (dc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
+        DC_vUpdateFillBrush(dc);
+
+    if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
+        DC_vUpdateLineBrush(dc);
+
     ret = IntRectangle ( dc, LeftRect, TopRect, RightRect, BottomRect );
     DC_vFinishBlit(dc, NULL);
     DC_UnlockDc ( dc );
     ret = IntRectangle ( dc, LeftRect, TopRect, RightRect, BottomRect );
     DC_vFinishBlit(dc, NULL);
     DC_UnlockDc ( dc );