GNOME Bugzilla – Bug 672935
Wayland readiness: Do not use gdk_x11_ API
Last modified: 2013-07-28 20:16:42 UTC
http://wayland.freedesktop.org/gtk.html says: "Your application must not use any API in the gdk_x11_ namespace or any raw Xlib calls." Many applications still copy libegg code so this is probably the place to start. Please add dependencies bug report numbers to track progress in depending apps. $:andre\> grep -r gdk_x11_ . ./libegg/smclient/eggsmclient-xsmp.c: gdk_x11_set_sm_client_id (xsmp->client_id); ./libegg/smclient/eggsmclient-dbus.c: gdk_x11_set_sm_client_id (ret_client_id); ./libegg/smclient/eggdesktopfile.c: launch_time = gdk_x11_display_get_user_time (display); ./libegg/smclient/eggdesktopfile.c: gdk_x11_display_broadcast_startup_message (display, "new", ./libegg/smclient/eggdesktopfile.c: gdk_x11_display_broadcast_startup_message (display, "remove", ./libegg/treeviewutils/eggaccelerators.c: xmodmap = XGetModifierMapping (gdk_x11_get_default_xdisplay ());
> "Your application must not use any API in the gdk_x11_ namespace or any raw > Xlib calls." That's not really correct. You just have to #ifdef GDK_WINDOWING_X11 these calls, *and* runtime-check with |if (GDK_IS_X11_DISPLAY(...)) { ... }| etc.
See https://developer.gnome.org/gtk3/stable/ch24s02.html#idm140520296072448
Looks like this was fixed in: https://git.gnome.org/browse/libegg/commit/?id=7ceb9c1fb72f21f8887d25bbba1360b8ed56a0a7
true