[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