wayland-surface: Properly allow setting the cursor to a NULL buffer

This commit is contained in:
Jasper St. Pierre 2013-11-25 16:03:25 -05:00
parent 57866fb267
commit 4780f74a40
2 changed files with 13 additions and 9 deletions

View File

@ -68,7 +68,11 @@ meta_wayland_seat_update_sprite (MetaWaylandSeat *seat)
if (seat->cursor_tracker == NULL) if (seat->cursor_tracker == NULL)
return; return;
buffer = seat->sprite->buffer_ref.buffer->resource; if (seat->sprite->buffer_ref.buffer)
buffer = seat->sprite->buffer_ref.buffer->resource;
else
buffer = NULL;
meta_cursor_tracker_set_window_cursor (seat->cursor_tracker, meta_cursor_tracker_set_window_cursor (seat->cursor_tracker,
buffer, buffer,
seat->hotspot_x, seat->hotspot_x,

View File

@ -243,6 +243,9 @@ ensure_buffer_texture (MetaWaylandBuffer *buffer)
CoglError *catch_error = NULL; CoglError *catch_error = NULL;
CoglTexture *texture; CoglTexture *texture;
if (!buffer)
return;
texture = COGL_TEXTURE (cogl_wayland_texture_2d_new_from_buffer (ctx, texture = COGL_TEXTURE (cogl_wayland_texture_2d_new_from_buffer (ctx,
buffer->resource, buffer->resource,
&catch_error)); &catch_error));
@ -277,14 +280,11 @@ meta_wayland_surface_commit (struct wl_client *client,
{ {
MetaWaylandBuffer *buffer = surface->pending.buffer; MetaWaylandBuffer *buffer = surface->pending.buffer;
if (buffer) /* Note: we set this before informing any window-actor since the
{ * window actor will expect to find the new buffer within the
/* Note: we set this before informing any window-actor since the * surface. */
* window actor will expect to find the new buffer within the ensure_buffer_texture (buffer);
* surface. */ meta_wayland_buffer_reference (&surface->buffer_ref, buffer);
ensure_buffer_texture (buffer);
meta_wayland_buffer_reference (&surface->buffer_ref, buffer);
}
} }
if (surface == compositor->seat->sprite) if (surface == compositor->seat->sprite)