https://bugs.winehq.org/show_bug.cgi?id=41606
Bug ID: 41606 Summary: Wrong processing of WM_DROPFILES message, received only by the top level windows. Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: johnfound@asm32.info Distribution: ---
Created attachment 55950 --> https://bugs.winehq.org/attachment.cgi?id=55950 One possible fix of the problem.
Because of wrong implementation, only the top level windows receive WM_DROPFILES.
The children windows even with set WS_EX_ACCEPTFILES, never accept WM_DROPFILES and are not a drop target at all.
This bug affects only X11 driver. The Mac OS X driver is implemented properly.
The bug is located in the file "dlls/winex11.drv/xdnd.c".
I will attach one possible fix of this bug in the file "xdnd.diff".
It works for me, but need some revision, because my C programming skills and knowledge about WINE code tree are very low. This way, the suggested fix can be far from optimal. Especially the function WindowFromPointDnD can duplicate some functionality implemented elsewhere.