Vincent Povirk : gdiplus: Don't require an HDC in get_graphics_bounds.

Alexandre Julliard julliard at winehq.org
Tue Aug 17 11:31:11 CDT 2010


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

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Sun Aug  8 15:31:03 2010 -0500

gdiplus: Don't require an HDC in get_graphics_bounds.

---

 dlls/gdiplus/graphics.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 094ed61..ced0d40 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -1137,6 +1137,8 @@ static GpStatus restore_container(GpGraphics* graphics,
 static GpStatus get_graphics_bounds(GpGraphics* graphics, GpRectF* rect)
 {
     RECT wnd_rect;
+    GpStatus stat=Ok;
+    GpUnit unit;
 
     if(graphics->hwnd) {
         if(!GetClientRect(graphics->hwnd, &wnd_rect))
@@ -1146,6 +1148,10 @@ static GpStatus get_graphics_bounds(GpGraphics* graphics, GpRectF* rect)
         rect->Y = wnd_rect.top;
         rect->Width = wnd_rect.right - wnd_rect.left;
         rect->Height = wnd_rect.bottom - wnd_rect.top;
+    }else if (graphics->image){
+        stat = GdipGetImageBounds(graphics->image, rect, &unit);
+        if (stat == Ok && unit != UnitPixel)
+            FIXME("need to convert from unit %i\n", unit);
     }else{
         rect->X = 0;
         rect->Y = 0;
@@ -1153,7 +1159,7 @@ static GpStatus get_graphics_bounds(GpGraphics* graphics, GpRectF* rect)
         rect->Height = GetDeviceCaps(graphics->hdc, VERTRES);
     }
 
-    return Ok;
+    return stat;
 }
 
 /* on success, rgn will contain the region of the graphics object which




More information about the wine-cvs mailing list