server: Return the time of last change along with the current cursor position.
diff --git a/server/queue.c b/server/queue.c
index f6ac303..35448e5 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -1281,6 +1281,7 @@
 {
     desktop->cursor.x = min( max( x, desktop->cursor.clip.left ), desktop->cursor.clip.right - 1 );
     desktop->cursor.y = min( max( y, desktop->cursor.clip.top ), desktop->cursor.clip.bottom - 1 );
+    desktop->cursor.last_change = get_tick_count();
 }
 
 /* queue a hardware message into a given thread input */
@@ -1411,9 +1412,10 @@
         WM_MOUSEHWHEEL   /* 0x1000 = MOUSEEVENTF_HWHEEL */
     };
 
+    desktop->cursor.last_change = get_tick_count();
     flags = input->mouse.flags;
     time  = input->mouse.time;
-    if (!time) time = get_tick_count();
+    if (!time) time = desktop->cursor.last_change;
 
     if (flags & MOUSEEVENTF_MOVE)
     {
@@ -2624,7 +2626,8 @@
             input->desktop->cursor.clip = top_rect;
     }
 
-    reply->new_x    = input->desktop->cursor.x;
-    reply->new_y    = input->desktop->cursor.y;
-    reply->new_clip = input->desktop->cursor.clip;
+    reply->new_x       = input->desktop->cursor.x;
+    reply->new_y       = input->desktop->cursor.y;
+    reply->new_clip    = input->desktop->cursor.clip;
+    reply->last_change = input->desktop->cursor.last_change;
 }