X11: Don't assume all displays are X11 displays

When iterating over the list of displays gotten from the
display manager, we have to check if what we got is actually
an X11 display.
This commit is contained in:
Matthias Clasen
2014-10-24 18:38:15 -04:00
parent 4590501854
commit 32326f826f
2 changed files with 8 additions and 3 deletions

View File

@ -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);
}

View File

@ -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);