[gtk: 1/2] wayland: Fix restarting cursor animation
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 1/2] wayland: Fix restarting cursor animation
- Date: Thu, 17 May 2018 10:01:23 +0000 (UTC)
commit a5d000cb5ca59fabc35e9a9c033f47ed5814a269
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Wed May 9 22:13:10 2018 +0200
wayland: Fix restarting cursor animation
When an animated cursor was set and the previous cursor animation delay
happened to be the same, we wouldn't restart the animation timeout and
just return G_SOURCE_CONTINUE assuming the timer would continue. This
assumption is however only valid if the function was called from the
timeout, which is not the case.
Instead also arm the timer also if there is no previous timer active.
gdk/wayland/gdkdevice-wayland.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index edeb32f283..fc7019b8a8 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -405,13 +405,16 @@ gdk_wayland_device_update_surface_cursor (GdkDevice *device)
else
{
pointer->cursor_timeout_id = 0;
- return TRUE;
+ return G_SOURCE_REMOVE;
}
if (tablet)
{
if (!tablet->current_tool)
- return retval;
+ {
+ pointer->cursor_timeout_id = 0;
+ return G_SOURCE_REMOVE;
+ }
zwp_tablet_tool_v2_set_cursor (tablet->current_tool->wp_tablet_tool,
pointer->enter_serial,
@@ -426,7 +429,10 @@ gdk_wayland_device_update_surface_cursor (GdkDevice *device)
x, y);
}
else
- return retval;
+ {
+ pointer->cursor_timeout_id = 0;
+ return G_SOURCE_REMOVE;
+ }
if (buffer)
{
@@ -450,7 +456,8 @@ gdk_wayland_device_update_surface_cursor (GdkDevice *device)
if (next_image_index != pointer->cursor_image_index)
{
- if (next_image_delay != pointer->cursor_image_delay)
+ if (next_image_delay != pointer->cursor_image_delay ||
+ pointer->cursor_timeout_id == 0)
{
guint id;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]