[Spice-devel] [PATCH spice-gtk] widget: Return early on cursor set without shape
Victor Toso
victortoso at redhat.com
Fri May 26 14:59:39 UTC 2017
Hi,
On Fri, May 26, 2017 at 04:39:49PM +0200, Pavel Grunt wrote:
> A cursor pixbuf is required in other functions to work properly
From what I checked, yes. Plus this is unlikely to happen (I never saw
this warning for instance)
Acked-by: Victor Toso <victortoso at redhat.com>
> ---
> src/spice-widget.c | 37 +++++++++++++++++++------------------
> 1 file changed, 19 insertions(+), 18 deletions(-)
>
> diff --git a/src/spice-widget.c b/src/spice-widget.c
> index d42924b..1a1d5a6 100644
> --- a/src/spice-widget.c
> +++ b/src/spice-widget.c
> @@ -2643,26 +2643,27 @@ static void cursor_set(SpiceCursorChannel *channel,
> GdkCursor *cursor = NULL;
> SpiceCursorShape *cursor_shape;
>
> - cursor_invalidate(display);
> -
> g_object_get(G_OBJECT(channel), "cursor", &cursor_shape, NULL);
> - if (cursor_shape != NULL && cursor_shape->data != NULL) {
> - g_clear_object(&d->mouse_pixbuf);
> - d->mouse_pixbuf = gdk_pixbuf_new_from_data(cursor_shape->data,
> - GDK_COLORSPACE_RGB,
> - TRUE, 8,
> - cursor_shape->width,
> - cursor_shape->height,
> - cursor_shape->width * 4,
> - NULL, NULL);
> - d->mouse_hotspot.x = cursor_shape->hot_spot_x;
> - d->mouse_hotspot.y = cursor_shape->hot_spot_y;
> - cursor = gdk_cursor_new_from_pixbuf(gtk_widget_get_display(GTK_WIDGET(display)),
> - d->mouse_pixbuf,
> - d->mouse_hotspot.x,
> - d->mouse_hotspot.y);
> - } else
> + if (G_UNLIKELY(cursor_shape == NULL || cursor_shape->data == NULL)) {
> g_warn_if_reached();
> + return;
> + }
> +
> + cursor_invalidate(display);
> + g_clear_object(&d->mouse_pixbuf);
> + d->mouse_pixbuf = gdk_pixbuf_new_from_data(cursor_shape->data,
> + GDK_COLORSPACE_RGB,
> + TRUE, 8,
> + cursor_shape->width,
> + cursor_shape->height,
> + cursor_shape->width * 4,
> + NULL, NULL);
> + d->mouse_hotspot.x = cursor_shape->hot_spot_x;
> + d->mouse_hotspot.y = cursor_shape->hot_spot_y;
> + cursor = gdk_cursor_new_from_pixbuf(gtk_widget_get_display(GTK_WIDGET(display)),
> + d->mouse_pixbuf,
> + d->mouse_hotspot.x,
> + d->mouse_hotspot.y);
>
> #if HAVE_EGL
> if (egl_enabled(d))
> --
> 2.13.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170526/acf7f82a/attachment.sig>
More information about the Spice-devel
mailing list