(I sent this to the list 2 days ago via e-mail, but I never saw it come through and it’s not posted on the Discuss board, so here it is again. Sorry if this a duplicate.)
I use python 3.7 and wxPython 4.1.0 on both Windows 10 and MacOS Catalina. I’m trying to get a large, complicated application working on Catalina, and some of what I do depends on wxPython 4.1.0 to work.
I have a bit of custom Drag-and-Drop behavior defined in my application, some of which have stopped working on Windows only since I upgraded to wxPython 4.1.0. This problem did not exist in the last 4.0.x daily build I was using.
In my wx.PyDropTarget, and in the DoodleDropTarget object in the CustomDragAndDrop demo in the demo files, the “OnData ()” method has parameters for x, y, and dragResult. The dragResult parameter should either be wx.DragCopy (a value of 2) or wx.DragMove (a value of 3), which is indeed what it contains in wxPython 4.1.0 on MacOS and in wxPython 4.0.x on Windows. However, in wxPython 4.1.0 on Windows, it instead contains a value of 1, regardless of whether the Drag-and-Drop operation was a Copy or a Move operation. Since I need to differentiate between a Move and a Copy, this is obviously a problem for me.
You can see the problem in the CustomDragAndDrop demo if you run it in parallel on Windows and MacOS. When you drop the image on the drop target, you can look in the log messages and will see that the OnData and DragDrop completed lines show a parameter value of 1 on Windows regardless of Move or Copy, while they show a 2 for Copy and 3 for Move on MacOS. Based on many past wxPython versions, MacOS is behaving correctly and Windows is not.