Wolfgang Schwotzer <wolfgang.schwot...@gmx.net> writes:

> Much thanks to Konstantin Kondratyuk. He is the brain behind this bugfix.
>
> --- a/dlls/user32/text.c      2010-06-01 18:14:04.000000000 +0200
> +++ b/dlls/user32/text.c      2010-06-01 18:15:37.000000000 +0200
> @@ -954,8 +954,12 @@
>  
>       if (flags & DT_SINGLELINE)
>       {
> -         if (flags & DT_VCENTER) y = rect->top +
> -             (rect->bottom - rect->top) / 2 - size.cy / 2;
> +         if (flags & DT_VCENTER)
> +         {
> +             int sign = 1;
> +             if (rect->top < 0 && rect->bottom < 0) sign = -1;
> +             y = rect->top + (rect->bottom - rect->top) / 2 - sign * size.cy 
> / 2;

This doesn't make sense, the sign should depend on the viewport
mappings, not on the position being negative.

-- 
Alexandre Julliard
julli...@winehq.org


Reply via email to