GDK W32: Another massive clipboard and DnD update
authorРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 24 Mar 2018 16:27:11 +0000 (16:27 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Thu, 29 Mar 2018 17:43:53 +0000 (17:43 +0000)
commit54a43071288a306229b4b2e1cc54cd6962a71549
tree8e1fca726a4b677a7d76cf4fef423176c466f427
parent6ad33a274b0ee9a3857873cc9c244bfa6ce3dc6c
GDK W32: Another massive clipboard and DnD update

Rename GdkWin32Selection to GdkWin32Clipdrop, since GdkSelection
is mostly gone, and the word "selection" does not reflect the
functionality of this object too well.

Clipboard is now handled by a separate thread, most of the code for
it now lives in gdkclipdrop-win32.c, gdkclipboard-win32.c just uses
clipdrop as a backend.

The DnD source part is also put into a thread.
The DnD target part does not spin the main loop, it just
emits a GDK event and returns a default value if it doesn't get a reply
by the time the event is processed.

Both clipboard and DnD use a new GOutputStream subclass to get data
from GTK and put it into a HGLOBAL.

GdkWin32DragContext is split into GdkWin32DragContext and GdkWin32DropContext,
anticipating a similar change that slated to happen to GdkDragContext.

OLE2 DnD protocol is now used by default, set GDK_WIN32_OLE2_DND envvar to 0
to make GDK use the old LOCAL and DROPFILES protocols.

https://bugzilla.gnome.org/show_bug.cgi?id=773299
17 files changed:
gdk/win32/gdkclipboard-win32.c [new file with mode: 0644]
gdk/win32/gdkclipboard-win32.h [new file with mode: 0644]
gdk/win32/gdkclipdrop-win32.c [new file with mode: 0644]
gdk/win32/gdkclipdrop-win32.h [new file with mode: 0644]
gdk/win32/gdkdisplay-win32.c
gdk/win32/gdkdisplay-win32.h
gdk/win32/gdkdrag-win32.c [new file with mode: 0644]
gdk/win32/gdkdrop-win32.c [new file with mode: 0644]
gdk/win32/gdkevents-win32.c
gdk/win32/gdkglobals-win32.c
gdk/win32/gdkhdataoutputstream-win32.c [new file with mode: 0644]
gdk/win32/gdkhdataoutputstream-win32.h [new file with mode: 0644]
gdk/win32/gdkmain-win32.c
gdk/win32/gdkprivate-win32.h
gdk/win32/gdkwin32dnd-private.h
gdk/win32/gdkwin32dnd.h
gdk/win32/meson.build