Bartosz Kosiorek (@gang65) commented about dlls/gdiplus/graphics.c:
if (stringFormat->attr) TRACE("may be ignoring some format flags: attr %x\n", stringFormat->attr);
+ if (stringFormat->line_align != StringAlignmentNear) + { + RectF bounds, in_rect = *layoutRect; + in_rect.Height = 0.0f; /* avoid height clipping */ + GdipMeasureString(graphics, string, length, font, &in_rect, stringFormat, &bounds, NULL, NULL); + + TRACE("bounds %s\n", debugstr_rectf(&bounds)); + + if (stringFormat->line_align == StringAlignmentCenter) + offsety = (layoutRect->Height - bounds.Height) / 2.0f; + else if (stringFormat->line_align == StringAlignmentFar) + offsety = layoutRect->Height - bounds.Height; + }
@dmitry Can you create separate Merge Request only with this change (`line_align` support). Is it introducing regression in tests? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9775#note_137682