[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Tue, 20 Apr 2010 22:20:55 +0000 (22:20 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Tue, 20 Apr 2010 22:20:55 +0000 (22:20 +0000)
  - revert unwanted change from r46964
  - Use MouseSafetyOnDrawStart/End in GreExtTextOutW when we already hold the blit lock

svn path=/branches/reactos-yarotows/; revision=46969

subsystems/win32/win32k/objects/bitblt.c
subsystems/win32/win32k/objects/freetype.c

index f2bb3b2..7d0dcb6 100644 (file)
@@ -936,6 +936,7 @@ IntPatBlt(
 {
     RECTL DestRect;
     SURFACE *psurf;
+    EBRUSHOBJ eboFill ;
     POINTL BrushOrigin;
     BOOL ret;
 
@@ -985,6 +986,8 @@ IntPatBlt(
     if (pdc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
         DC_vUpdateFillBrush(pdc);
 
+    EBRUSHOBJ_vInit(&eboFill, pbrush, pdc);
+
     ret = IntEngBitBlt(
         &psurf->SurfObj,
         NULL,
@@ -994,12 +997,14 @@ IntPatBlt(
         &DestRect,
         NULL,
         NULL,
-        &pdc->eboFill.BrushObject,
+        &eboFill.BrushObject,
         &BrushOrigin,
         ROP3_TO_ROP4(dwRop));
 
     DC_vFinishBlit(pdc, NULL);
 
+    EBRUSHOBJ_vCleanup(&eboFill);
+
     return ret;
 }
 
index 00da100..921451c 100644 (file)
@@ -3506,7 +3506,7 @@ GreExtTextOutW(
             DestRect.right = (TextLeft + (realglyph->root.advance.x >> 10) + 32) >> 6;
             DestRect.top = TextTop + yoff - ((face->size->metrics.ascender + 32) >> 6);
             DestRect.bottom = TextTop + yoff + ((32 - face->size->metrics.descender) >> 6);
-            DC_vPrepareDCsForBlit(dc, DestRect, NULL, DestRect);
+            MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
             IntEngBitBlt(
                 &psurf->SurfObj,
                 NULL,
@@ -3519,7 +3519,7 @@ GreExtTextOutW(
                 &dc->eboBackground.BrushObject,
                 &BrushOrigin,
                 ROP3_TO_ROP4(PATCOPY));
-            DC_vFinishBlit(dc, NULL);
+            MouseSafetyOnDrawEnd(dc->ppdev);
             BackgroundLeft = DestRect.right;
 
         }
@@ -3574,7 +3574,7 @@ GreExtTextOutW(
             DestRect.right = lprc->right + dc->ptlDCOrig.x;
             DoBreak = TRUE;
         }
-        DC_vPrepareDCsForBlit(dc, DestRect, NULL, DestRect);
+        MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
         IntEngMaskBlt(
             SurfObj,
             SourceGlyphSurf,
@@ -3585,7 +3585,7 @@ GreExtTextOutW(
             (PPOINTL)&MaskRect,
             &dc->eboText.BrushObject,
             &BrushOrigin);
-        DC_vFinishBlit(dc, NULL);
+        MouseSafetyOnDrawEnd(dc->ppdev) ;
 
         EngUnlockSurface(SourceGlyphSurf);
         EngDeleteSurface((HSURF)HSourceGlyph);