wayland-surface: Don't crash if clients commit to a done popup

If we can't put up a popup because grabbing the pointer fails we
immediately dismiss the popup but the client might have made requests
already, in particular it might have commited the surface and in that
case we should ignore it.

https://bugzilla.gnome.org/show_bug.cgi?id=753237
This commit is contained in:
Rui Matos 2015-08-03 16:09:33 +02:00
parent 7ce06928e2
commit ab9dabe725

View File

@ -256,6 +256,12 @@ toplevel_surface_commit (MetaWaylandSurface *surface,
return; return;
} }
} }
else if (surface->role == META_WAYLAND_SURFACE_ROLE_XDG_POPUP)
{
/* Ignore commits if we couldn't grab the pointer */
if (!window)
return;
}
else else
{ {
if (surface->buffer == NULL) if (surface->buffer == NULL)
@ -268,6 +274,8 @@ toplevel_surface_commit (MetaWaylandSurface *surface,
} }
} }
g_assert (window != NULL);
/* We resize X based surfaces according to X events */ /* We resize X based surfaces according to X events */
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND) if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
{ {