https://bugs.winehq.org/show_bug.cgi?id=51496
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch Assignee|wine-bugs@winehq.org |fgouget@codeweavers.com
--- Comment #2 from François Gouget fgouget@codeweavers.com --- Thanks a lot for the patch, it pinpointed the source of the issue.
Looking into it I figured out that the patch can be simplified: * Only the Wine server can set the from field. * The from field also can only reference entries that precede it in the list because the synthesized formats must have a lower priority. That means when we loop other the list the formats referenced by the from field will be removed first. * All the synthesized formats are below CF_MAX.
All that combined means we can check whether the format referenced by the from field is 'present' by checking the format_map field which simplifies the code. So I submitted a patch based on that idea.
https://www.winehq.org/pipermail/wine-devel/2021-August/192280.html
I also wanted a test that can reproduce the issue to be sure I understood it correctly. I also submitted a user32:clipboard patch for that:
https://www.winehq.org/pipermail/wine-devel/2021-August/192279.html