Alexandre Julliard : gdi32: Use a more appropriate size for the default clip region.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Dec 12 08:42:12 CST 2006


Module: wine
Branch: master
Commit: 826c1d8700d3236b40ba56aaf25791d27e1f6924
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=826c1d8700d3236b40ba56aaf25791d27e1f6924

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 12 15:00:19 2006 +0100

gdi32: Use a more appropriate size for the default clip region.

---

 dlls/gdi32/clipping.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/dlls/gdi32/clipping.c b/dlls/gdi32/clipping.c
index 40a556c..fc59c18 100644
--- a/dlls/gdi32/clipping.c
+++ b/dlls/gdi32/clipping.c
@@ -86,9 +86,22 @@ void CLIPPING_UpdateGCRegion( DC * dc )
  */
 static inline void create_default_clip_region( DC * dc )
 {
-    dc->hClipRgn = CreateRectRgn(0, 0,
-        GetDeviceCaps( dc->hSelf, HORZRES ),
-        GetDeviceCaps( dc->hSelf, VERTRES ));
+    UINT width, height;
+
+    if (GDIMAGIC( dc->header.wMagic ) == MEMORY_DC_MAGIC)
+    {
+        BITMAP bitmap;
+
+        GetObjectW( dc->hBitmap, sizeof(bitmap), &bitmap );
+        width = bitmap.bmWidth;
+        height = bitmap.bmHeight;
+    }
+    else
+    {
+        width = GetDeviceCaps( dc->hSelf, DESKTOPHORZRES );
+        height = GetDeviceCaps( dc->hSelf, DESKTOPVERTRES );
+    }
+    dc->hClipRgn = CreateRectRgn( 0, 0, width, height );
 }
 
 




More information about the wine-cvs mailing list