mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 01:50:42 -05:00
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:
parent
7ce06928e2
commit
ab9dabe725
@ -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)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user