From: Carlos Garnacho Date: Mon, 13 Jan 2020 19:07:27 +0000 (+0100) Subject: gdk/x11: Serialize gtype content formats before sending Xdnd enter X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~320^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=682068f8879654da436aaf518ffe5be7edcdddbd;p=gtk4.git gdk/x11: Serialize gtype content formats before sending Xdnd enter This ensures GType handlers get serialized to mimetypes at the time the drag dest inspects the XdndTypeList property. --- diff --git a/gdk/x11/gdkdrag-x11.c b/gdk/x11/gdkdrag-x11.c index 724099dab0..55e157b52a 100644 --- a/gdk/x11/gdkdrag-x11.c +++ b/gdk/x11/gdkdrag-x11.c @@ -1061,6 +1061,7 @@ xdnd_send_enter (GdkX11Drag *drag_x11) { GdkDrag *drag = GDK_DRAG (drag_x11); GdkDisplay *display = gdk_drag_get_display (drag); + GdkContentFormats *formats; const char * const *atoms; gsize i, n_atoms; XEvent xev; @@ -1080,7 +1081,10 @@ xdnd_send_enter (GdkX11Drag *drag_x11) GDK_DISPLAY_NOTE (display, DND, g_message ("Sending enter source window %#lx XDND protocol version %d\n", GDK_SURFACE_XID (drag_x11->ipc_surface), drag_x11->version)); - atoms = gdk_content_formats_get_mime_types (gdk_drag_get_formats (drag), &n_atoms); + formats = gdk_content_formats_ref (gdk_drag_get_formats (drag)); + formats = gdk_content_formats_union_serialize_mime_types (formats); + + atoms = gdk_content_formats_get_mime_types (formats, &n_atoms); if (n_atoms > 3) {