When the last pointer is removed from a seat, the pointer struct is
intentionally kept.  This has some interesting side effects, so I've
documented it here so people like me don't errantly assume it's a bug.

Signed-off-by: Derek Foreman <[email protected]>
---

I tried to "fix" this "bug" the other day, so maybe a comment will
help others from making the same mistake...

 src/input.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/input.c b/src/input.c
index d3bfa5e..c039af0 100644
--- a/src/input.c
+++ b/src/input.c
@@ -2226,6 +2226,11 @@ weston_seat_release_pointer(struct weston_seat *seat)
 
                weston_pointer_reset_state(pointer);
                seat_send_updated_caps(seat);
+
+               /* seat->pointer is intentionally not destroyed so that
+                * a newly attached pointer on this seat will retain
+                * the previous cursor co-ordinates.
+                */
        }
 }
 
-- 
2.1.4

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to