GNOME Bugzilla – Bug 766522
DND broken with assertion 'GDK_IS_DEVICE (device)' failed
Last modified: 2016-05-18 11:05:50 UTC
The DND functionality in my application Terminix has stopped working between Arch Linux packages GTK gtk3-3.20.3-4 (working) and gtk3-3.20.4-1 (fails). When I attempt to drag and drop a terminal by dragging the titlebar, under 3.20.4-1 I get the following errors in the console and no drag occurs: (terminix:2932): Gdk-CRITICAL **: gdk_device_get_source: assertion 'GDK_IS_DEVICE (device)' failed (terminix:2932): Gdk-CRITICAL **: gdk_device_get_associated_device: assertion 'GDK_IS_DEVICE (device)' failed If I run Terminix under gdb and break on criticals and fatal (i.e. G_DEBUG=fatal_criticals gdb ./terminix) I see the following backtrace when it fails: Thread 1 "terminix" received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff6c357eb in g_logv () from /usr/lib/libglib-2.0.so.0 (gdb) bt
+ Trace 236258
This same scenario works fine in gtk3-3.20.3-4.
I suspect this might be a duplicate of https://bugzilla.gnome.org/show_bug.cgi?id=766442
I am not sure this is a duplicate of bug #766442. I attached a patch there, would be great if you tried it though. It'd be great too if you could get a backtrace with more debugging symbols, having all gtk/glib symbols missing in the one you pasted doesn't help a lot.
I downloaded GTK 3-20.4 and compiled it with debug information, with your patch from the other bug installed I still get the error. Here's the backtrace from gdb, hopefully with the debug info it is more useful. (terminix:16908): Gdk-CRITICAL **: gdk_device_get_source: assertion 'GDK_IS_DEVICE (device)' failed Thread 1 "terminix" received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff6c357eb in g_logv () from /usr/lib/libglib-2.0.so.0 (gdb) bt
+ Trace 236261
This turned out to be fixed only in master, the fix has been cherry picked to gtk-3-20: https://git.gnome.org/browse/gtk+/commit/?id=e006f3ca98990f6e3c8da58b49d7feba8403bb47