http://bugs.winehq.org/show_bug.cgi?id=3548
--- Comment #29 from Damjan Jovanovic damjan.jov@gmail.com 2010-05-07 03:36:18 --- (In reply to comment #28)
Perhaps we could move the .lnk's from the 'user' desktop to the 'public' desktop, which would keep it off the 'real' desktop, but also allow keeping track of it to remove the .desktop for later removal?
The application tells shell32 to write the .lnk file to a specific C:\path\to\file.lnk location and remembers that location. Any attempt to move or rename the .lnk after that - even to the other desktop - loses that file and stops the application from deleting it on uninstall.
The only thing I can think of that would fix this is to virtualize the filesystem - eg. use a FUSE module that merges ~/.wine/drive_c/users/user/Desktop with ~/Desktop when reading, but write .lnk files to ~/.wine/drive_c/users/user/Desktop and everything else to ~/Desktop.