NotifyGrab

Samuel Thibault samuel.thibault at ens-lyon.org
Thu Nov 23 16:37:50 UTC 2017


Hello,

I'm working on making compiz use XI2 to get more fine-grain hold
on keypresses.  I'm however getting an issue: I do not always get
NotifyGrab FocusIn events from the root window when a client calls

XGrabKeyboard (mydisplay, mywindow, True, GrabModeAsync, GrabModeAsync, CurrentTime);

, which prevents from properly respecting grabbing.


Unfortunately, I didn't manage to reproduce the issue with a simpler X
root event listener: runnning

XSelectInput(mydisplay, DefaultRootWindow(mydisplay), FocusChangeMask);

does properly bring focus out/in NotifyGrab events, but these events
don't get to Compiz. I also tried to listen on the window itself with
the same result: my simple event listener gets the event, but Compiz
does not.

Oddly enough, this seems to depend on the application: kvm / virtualbox
grabbing have the issue, but vncviewer grabbing doesn't have the issue.

Reading https://tronche.com/gui/x/xlib/input/XGrabKeyboard.html tells me
that there should always be FocusIn / FocusOut events being generated,
so I don't immediately see where to look for in the differences between
by simple listener and Compiz.

Could there be some undocumented cases where such events are not
generated?  Any idea where I could look in the X server to check what is
happening?

Samuel


More information about the xorg-devel mailing list