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