From 737790603cc1dd6697ec4b8fbd0c24a002904214 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 4 Mar 2013 17:51:41 +0900 Subject: [PATCH] Revert "gdiplus: Add support for StringFormatFlagsNoClip.". This reverts commit bfa35f37a7687cdae338ad9837fc595afb2df2b6. This patch breaks string alignment. --- dlls/gdiplus/graphics.c | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 1150675acb9..806cfa908f3 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -4682,16 +4682,8 @@ GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics* graphics, scaled_rect.X = (layoutRect->X + margin_x) * args.rel_width; scaled_rect.Y = layoutRect->Y * args.rel_height; - if (stringFormat->attr & StringFormatFlagsNoClip) - { - scaled_rect.Width = (REAL)(1 << 23); - scaled_rect.Height = (REAL)(1 << 23); - } - else - { - scaled_rect.Width = layoutRect->Width * args.rel_width; - scaled_rect.Height = layoutRect->Height * args.rel_height; - } + scaled_rect.Width = layoutRect->Width * args.rel_width; + scaled_rect.Height = layoutRect->Height * args.rel_height; if (scaled_rect.Width >= 0.5) { scaled_rect.Width -= margin_x * 2.0 * args.rel_width; @@ -4771,7 +4763,7 @@ GpStatus WINGDIPAPI GdipMeasureString(GpGraphics *graphics, GpPointF pt[3]; RectF scaled_rect; REAL margin_x; - INT lines, glyphs, format_flags = format ? format->attr : 0; + INT lines, glyphs; TRACE("(%p, %s, %i, %p, %s, %p, %p, %p, %p)\n", graphics, debugstr_wn(string, length), length, font, debugstr_rectf(rect), format, @@ -4813,12 +4805,6 @@ GpStatus WINGDIPAPI GdipMeasureString(GpGraphics *graphics, scaled_rect.Y = rect->Y * args.rel_height; scaled_rect.Width = rect->Width * args.rel_width; scaled_rect.Height = rect->Height * args.rel_height; - - if ((format_flags & StringFormatFlagsNoClip) || - scaled_rect.Width >= 1 << 23 || scaled_rect.Width < 0.5) scaled_rect.Width = 1 << 23; - if ((format_flags & StringFormatFlagsNoClip) || - scaled_rect.Height >= 1 << 23 || scaled_rect.Height < 0.5) scaled_rect.Height = 1 << 23; - if (scaled_rect.Width >= 0.5) { scaled_rect.Width -= margin_x * 2.0 * args.rel_width; @@ -4921,7 +4907,7 @@ GpStatus WINGDIPAPI GdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string GpPointF pt[3], rectcpy[4]; POINT corners[4]; REAL rel_width, rel_height, margin_x; - INT save_state, format_flags = 0; + INT save_state; REAL offsety = 0.0; struct draw_string_args args; RectF scaled_rect; @@ -4946,8 +4932,6 @@ GpStatus WINGDIPAPI GdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string if(format){ TRACE("may be ignoring some format flags: attr %x\n", format->attr); - format_flags = format->attr; - /* Should be no need to explicitly test for StringAlignmentNear as * that is default behavior if no alignment is passed. */ if(format->vertalign != StringAlignmentNear){ @@ -4992,12 +4976,6 @@ GpStatus WINGDIPAPI GdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string scaled_rect.Y = 0.0; scaled_rect.Width = rel_width * rect->Width; scaled_rect.Height = rel_height * rect->Height; - - if ((format_flags & StringFormatFlagsNoClip) || - scaled_rect.Width >= 1 << 23 || scaled_rect.Width < 0.5) scaled_rect.Width = 1 << 23; - if ((format_flags & StringFormatFlagsNoClip) || - scaled_rect.Height >= 1 << 23 || scaled_rect.Height < 0.5) scaled_rect.Height = 1 << 23; - if (scaled_rect.Width >= 0.5) { scaled_rect.Width -= margin_x * 2.0 * rel_width; @@ -5007,8 +4985,7 @@ GpStatus WINGDIPAPI GdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string if (scaled_rect.Width >= 1 << 23 || scaled_rect.Width < 0.5) scaled_rect.Width = 1 << 23; if (scaled_rect.Height >= 1 << 23 || scaled_rect.Height < 0.5) scaled_rect.Height = 1 << 23; - if (!(format_flags & StringFormatFlagsNoClip) && - scaled_rect.Width != 1 << 23 && scaled_rect.Height != 1 << 23) + if (scaled_rect.Width != 1 << 23 && scaled_rect.Height != 1 << 23) { /* FIXME: If only the width or only the height is 0, we should probably still clip */ rgn = CreatePolygonRgn(corners, 4, ALTERNATE);