window: Remove the concept of surface_mapped

The implementation was just wrong. We now consider it an error to attach
a NULL buffer to an xdg_surface. Users should destroy the surface properly.
This commit is contained in:
Jasper St. Pierre
2014-07-14 14:49:18 -04:00
parent 941d202938
commit 7159d3bc35
4 changed files with 10 additions and 27 deletions

View File

@@ -163,7 +163,7 @@ cursor_surface_commit (MetaWaylandSurface *surface,
}
static void
toplevel_surface_commit (MetaWaylandSurface *surface,
toplevel_surface_commit (MetaWaylandSurface *surface,
MetaWaylandPendingState *pending)
{
if (pending->frame_extents_changed)
@@ -174,9 +174,16 @@ toplevel_surface_commit (MetaWaylandSurface *surface,
MetaWindow *window = surface->window;
MetaWaylandBuffer *buffer = pending->buffer;
meta_window_set_surface_mapped (window, buffer != NULL);
if (buffer == NULL)
{
wl_resource_post_error (surface->resource,
WL_DISPLAY_ERROR_INVALID_OBJECT,
"Cannot commit a NULL buffer to an xdg_surface");
return;
}
/* We resize X based surfaces according to X events */
if (buffer != NULL && window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
{
int new_width, new_height;