Bartosz Kosiorek (@gang65) commented about dlls/gdiplus/graphicspath.c:
+ // Coordination where cap needs to be drawn + par_dx = -pen_width * segment_dx / segment_length; + par_dy = -pen_width * segment_dy / segment_length; + + sina = -pen_width * custom->scale * segment_dx / segment_length; + cosa = pen_width * custom->scale * segment_dy / segment_length; + + for (INT i = 0; i < custom->pathdata.Count; i++) + { + // rotation of CustomCap according to line + perp_dx = custom->pathdata.Points[i].X * cosa + (custom->pathdata.Points[i].Y - custom->inset) * sina; + perp_dy = custom->pathdata.Points[i].X * sina - (custom->pathdata.Points[i].Y - custom->inset) * cosa; + *last_point = add_path_list_node(*last_point, endpoint->X + par_dx + perp_dx, + endpoint->Y + par_dy + perp_dy, custom->pathdata.Types[i]); + } + // FIXME: The line should be shorter, and it should ends up when Arrow/Cap is started draw The line should be shortened, to not mix with Customized Cap.
 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1297#note_13715