[Bug 44963] New: gdi32: GetTextExtentExPoint* broken wrt. fake_bold

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Apr 11 15:37:17 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=44963

            Bug ID: 44963
           Summary: gdi32: GetTextExtentExPoint* broken wrt. fake_bold
           Product: Wine
           Version: 3.5
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdi32
          Assignee: wine-bugs at winehq.org
          Reporter: galtgendo at o2.pl
      Distribution: ---

I'm not sure if I can describe it properly.

The chain goes about this way:
- CreateFontIndirectEx is passed size (-22) and weight Bold
- SelectFont runs and returns a *fake_bold* font with MaxCharWidth = 24
- based upon that GetTextExtentExPoint will be called with nMaxExtent = 24
- that call will incorrectly fail (return FALSE), as artificial bold will make
the glyph 25px wide (because of get_advance_metric)

Adding 1 to max_ext in '(nfit && dx > (unsigned int)max_ext)' check makes
things relying on GetTextExtentExPoint *not* failing work, but isn't really a
proper fix...

Noticed with GetTextExtentExPointW, but (given content of the functions) most
likely could be triggered by GetTextExtentExPointI too.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list