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:
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user