This is an attempt at improving X11 focus handling, and will most importantly be useful to later better handle dynamic window decoration changes on any mutter-based window manager. These window managers do a little dance in that case, unmapping/mapping the window every time decoration are added/removed, and we often get confused by the focus events it triggers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7182
This resolves the issue in StudioTax where the bounding box dimensions is reported as 0.
Because the height is less than 0, the check for height in GdipAddPathRectangle fails,
and the X and Y coordinates of the points is never set.
I am fairly ignorant of this code, this seems like a good approach, however I am happy for guidance from others more familiar in how gdiplus works.
--
v3: gdiplus: Fix text height calculation when exceeding rect
gdiplus: Check for NoClip in text height calculation
https://gitlab.winehq.org/wine/wine/-/merge_requests/5360