[gtk+/gtk-3-18] wayland: Set a null cursor surface when cursor buffer is null
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-18] wayland: Set a null cursor surface when cursor buffer is null
- Date: Sat, 5 Dec 2015 02:17:09 +0000 (UTC)
commit db3c824c5cd9c2b3ec999148ec0a1e54fb1f68f8
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Fri Nov 20 16:49:12 2015 +0800
wayland: Set a null cursor surface when cursor buffer is null
If the buffer of a cursor is NULL, for example if its an empty cursor,
just set the cursor surface to NULL as well. Not doing this we'll use
uninitialized hotspot coordinates, dimensions and scales.
https://bugzilla.gnome.org/show_bug.cgi?id=758025
gdk/wayland/gdkdevice-wayland.c | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 5b60ddf..770e9b2 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -217,16 +217,27 @@ gdk_wayland_device_update_window_cursor (GdkWaylandDeviceData *wd)
if (!wd->wl_pointer)
return retval;
- wl_pointer_set_cursor (wd->wl_pointer,
- wd->enter_serial,
- wd->pointer_surface,
- x, y);
if (buffer)
{
wl_surface_attach (wd->pointer_surface, buffer, 0, 0);
wl_surface_set_buffer_scale (wd->pointer_surface, scale);
wl_surface_damage (wd->pointer_surface, 0, 0, w, h);
wl_surface_commit (wd->pointer_surface);
+
+ wl_pointer_set_cursor (wd->wl_pointer,
+ wd->enter_serial,
+ wd->pointer_surface,
+ x, y);
+ }
+ else
+ {
+ wl_pointer_set_cursor (wd->wl_pointer,
+ wd->enter_serial,
+ NULL,
+ 0, 0);
+
+ wl_surface_attach (wd->pointer_surface, NULL, 0, 0);
+ wl_surface_commit (wd->pointer_surface);
}
next_image_index =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]