It returns TRUE/FALSE, not the item you've stolen, so if you free that,
your X connections is gonna have a BadCursor.
GdkDisplay *display = data;
Cursor xcursor;
- xcursor = GDK_POINTER_TO_XID (g_hash_table_steal (GDK_X11_DISPLAY (display)->cursors, cursor));
+ xcursor = GDK_POINTER_TO_XID (g_hash_table_lookup (GDK_X11_DISPLAY (display)->cursors, cursor));
XFreeCursor (GDK_DISPLAY_XDISPLAY (display), xcursor);
+ g_hash_table_remove (GDK_X11_DISPLAY (display)->cursors, cursor);
}
void