diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 064b56f4d2..a964e2ae73 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1947,7 +1947,8 @@ gdk_x11_lookup_xdisplay (Display *xdisplay) for (l = list; l; l = l->next) { - if (GDK_DISPLAY_XDISPLAY (l->data) == xdisplay) + if (GDK_IS_X11_DISPLAY (l->data) && + GDK_DISPLAY_XDISPLAY (l->data) == xdisplay) { display = l->data; break; @@ -2801,7 +2802,10 @@ gdk_x11_set_sm_client_id (const gchar *sm_client_id) displays = gdk_display_manager_list_displays (gdk_display_manager_get ()); for (l = displays; l; l = l->next) - set_sm_client_id (l->data, sm_client_id); + { + if (GDK_IS_X11_DISPLAY (l->data)) + set_sm_client_id (l->data, sm_client_id); + } g_slist_free (displays); } diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c index 22c7b95519..9ab7c243b2 100644 --- a/gdk/x11/gdkmain-x11.c +++ b/gdk/x11/gdkmain-x11.c @@ -279,7 +279,8 @@ gdk_x_error (Display *xdisplay, { GdkX11Display *gdk_display = displays->data; - if (xdisplay == gdk_display->xdisplay) + if (GDK_IS_X11_DISPLAY (gdk_display) && + xdisplay == gdk_display->xdisplay) { error_display = GDK_DISPLAY (gdk_display); g_slist_free (displays);