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)
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,
buffer,
seat->hotspot_x,

View File

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