[PATCH] Update rootX/rootY when replaying events (Was: XI 1.5 questions)

Thomas Jaeger thjaeger at gmail.com
Sat Jan 3 18:39:12 PST 2009


The attached patch implements the suggested behavior.  I don't think
that this violates the spec.

> The question was actually about how the core pointer is reporting events
> when they are being replayed after a grab by a different client.  Here
> is a part of the xev output in this situation:
> 
> ButtonPress event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x3c00002, time 7082369, (37,21), root:(44,75),
>     state 0x0, button 1, same_screen YES
> 
> EnterNotify event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x0, time 7082546, (37,21), root:(44,75),
>     mode NotifyGrab, detail NotifyInferior, same_screen YES,
>     focus YES, state 256
> 
> KeymapNotify event, serial 31, synthetic NO, window 0x0,
>     keys:  124 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>            0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
> 
> MotionNotify event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x3c00002, time 7082384, (37,21), root:(44,75),
>     state 0x100, is_hint 0, same_screen YES
> 
> MotionNotify event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x3c00002, time 7082396, (37,21), root:(44,75),
>     state 0x100, is_hint 0, same_screen YES
> 
> [about 10 more MotionNotify events with the same coordinates]
> 
> MotionNotify event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x3c00002, time 7082546, (37,21), root:(44,75),
>     state 0x100, is_hint 0, same_screen YES
> 
> ButtonRelease event, serial 31, synthetic NO, window 0x3c00001,
>     root 0x7c, subw 0x3c00002, time 7082710, (67,61), root:(74,115),
>     state 0x100, button 1, same_screen YES
> 
> Notice that all the replayed MotionNotify events have identical
> coordinates (the position where the mouse was pressed down), so we don't
> get any real information here.  In particular, after the call to
> XAllowEvents, the application will be unaware of the actual position of
> the pointer until the mouse is either moved or released.



More information about the xorg mailing list