[EMAIL PROTECTED] writes:

>     if(flags & (ETO_CLIPPED | ETO_OPAQUE)) {
>         if(!lprect) {
>          if(flags & ETO_CLIPPED) {
>           if(glyphs != wstr) HeapFree(GetProcessHeap(), 0, glyphs);
>           return FALSE;
>          }
>          GetTextExtentPointI(hdc, glyphs, count, &sz);
>          done_extents = TRUE;
>          rc.left = x;
>          rc.top = y;
>          rc.right = x + sz.cx;
>          rc.bottom = y + sz.cy;
>      } else {
>          if (IsRectEmpty(lprect)) {
>           if(glyphs != wstr) HeapFree(GetProcessHeap(), 0, glyphs);
>           return TRUE;
>          }
>          rc = *lprect;
>      }
>
>      LPtoDP(physDev->hdc, (POINT*)&rc, 2);
>
>      if(rc.left > rc.right) {INT tmp = rc.left; rc.left = rc.right; rc.right =
> tmp;}
>      if(rc.top > rc.bottom) {INT tmp = rc.top; rc.top = rc.bottom; rc.bottom =
> tmp;}
>     }
>
> If this looks good, I can submit a new patch this afternoon...

That looks better yes; it's still a bit complex IMO, but I'm not sure
it's possible to do much better with that glyph index thing. Still I'm
wondering if you shouldn't do the IsRectEmpty check after the LPtoDP
and coordinates swap.

-- 
Alexandre Julliard
[EMAIL PROTECTED]

Reply via email to