Commit Graph

16 Commits

Author SHA1 Message Date
Robbert van der Helm 091ab0f0df Spawn a thread to fake do our XDND polling
We cannot integrate this into our event loop like we planned, because
Wine a) grabs the mouse pointer so we cannot do that, and b) blocks the
GUI thread. So instead we will spawn our own thread and do polling based
XDND. When Wine's tracker window gets destroyed, we know that the left
mouse button has been released.
2021-07-10 19:28:40 +02:00
Robbert van der Helm f044dc4784 Fetch basic atoms for XDND 2021-07-10 17:48:22 +02:00
Robbert van der Helm 3372f4424e Create a window for the X11 proxy 2021-07-10 16:43:23 +02:00
Robbert van der Helm a8b7dc8764 Move the dnd proxy WinEvent callback around 2021-07-10 16:19:52 +02:00
Robbert van der Helm d908db5476 Add an X11 event handling function to the proxy 2021-07-10 16:19:23 +02:00
Robbert van der Helm b47a6e034b Rename init_proxy -> get_handle 2021-07-10 15:16:20 +02:00
Robbert van der Helm df75427f69 Store the dragged files so we can use them in XDND 2021-07-10 13:06:46 +02:00
Robbert van der Helm c0871e3b5d Unify drag-and-drop debug messages 2021-07-10 12:44:14 +02:00
Robbert van der Helm bc9d4d02a2 Fix copy and move semantics for DnD proxy handle 2021-07-10 02:17:10 +02:00
Robbert van der Helm dbb1b09256 Add proper copy and move semantics to proxy handle 2021-07-10 00:49:11 +02:00
Robbert van der Helm 2ba2cf1ab7 Free the drag-and-drop proxy after closing editors
Apparently X11 connections are a scarce resource, so it seems like a
good idea to not hang on to them for too long. Now this is sort of a
hybrid between COM-style memory management and a singleton.
2021-07-10 00:15:38 +02:00
Robbert van der Helm b1e3488a24 Add an X11 connection to the drag-and-drop proxy 2021-07-10 00:09:29 +02:00
Robbert van der Helm 41160adc33 Fix the drag-and-drop debugging message
Because why not?
2021-07-09 21:37:29 +02:00
Robbert van der Helm dd14a90f9a Only handle drag-and-drop from this process
When called from another process the data pointer will of course be
invalid, so every process must handle their own drag-and-drop.
2021-07-09 21:32:56 +02:00
Robbert van der Helm f33c02f4f7 Add a proof of concept drag-and-drop snooper
This doesn't do anything useful yet, but it will print the names of
files that are being dragged and dropped on the Wine server (using the
OLE API) while the plugin is open.
2021-07-09 20:53:15 +02:00
Robbert van der Helm fc61658ada Add the start for a Wine->X11 DnD wrapper 2021-07-09 18:48:11 +02:00