Peter Hutterer <peter.hutte...@who-t.net> writes:

> On 30/11/2013 02:42 , Ben Gamari wrote:
>> It seems that when keyboard input is in its paused state only the
>> device events are delivered. The core keyboard events are only
>> delivered after another mouse event has occurred.
>
> ok, what's happening here is that (most likely) the device is frozen. 
> Event delivery works that for each event, dev->public.processInputProc 
> is called. That is usually ProcessOtherEvents(), but if the device is 
> frozen from a sync grab, that func is EnqueueEvents(). You'll likely 
> fine that the core keyboard events are going there. Once unfrozen, the 
> events are replayed as you see below.
>
> most likely what's happening here is that the grab is stuck and xmonad 
> doesn't send the AllowEvents because it didn't get an event it expected.
> the xscope output may help here to figure out what it is registering for.
>
This is what the xscope'd xmonad process produces around the time of a
window switch. These are the only keyboard-synchronous grabs I've been
able to find. Regardless, it looks to me like the UngrabButton request
should really kill any grabs that were established.

Cheers,

- Ben

         
         ............REQUEST: ConfigureWindow
                      window: WIN 02200024
                  value-mask: x | y | width | height
                  value-list:
                                   x: 960
                                   y: 25
                               width: 03be
                              height: 041d
         ............REQUEST: ChangeWindowAttributes
                      window: WIN 02200024
                  value-mask: border-pixel
                  value-list:
                        border-pixel: 000033ff
         ............REQUEST: ChangeProperty
                        mode: Replace
                      window: WIN 01a00024
                    property: <WM_STATE>
                        type: <WM_STATE>
                      format: 20
                        data: 01 00 00 00 00 00 00 00 
         ............REQUEST: MapWindow
                      window: WIN 01a00024
         ............REQUEST: ChangeProperty
                        mode: Replace
                      window: WIN 02200024
                    property: <WM_STATE>
                        type: <WM_STATE>
                      format: 20
                        data: 01 00 00 00 00 00 00 00 
         ............REQUEST: MapWindow
                      window: WIN 02200024
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 01a00024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 1 (^A)
                   modifiers: AnyModifier
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 01a00024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 2 (^B)
                   modifiers: AnyModifier
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 01a00024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 3 (^C)
                   modifiers: AnyModifier
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 02200024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 1 (^A)
                   modifiers: AnyModifier
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 02200024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 2 (^B)
                   modifiers: AnyModifier
         ............REQUEST: GrabButton
                owner-events: False
                 grab-window: WIN 02200024
                  event-mask: ButtonPress
                pointer-mode: Asynchronous
               keyboard-mode: Synchronous
                  confine-to: None
                      cursor: None
                      button: 3 (^C)
                   modifiers: AnyModifier
         ............REQUEST: UngrabButton
                      button: AnyButton
                 grab-window: WIN 02200024
                   modifiers: AnyModifier

Attachment: pgpRcXafpDE1K.pgp
Description: PGP signature

_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Reply via email to