In my experiments, I didn't want to do what Glynn suggested because I will be repeatedly changing the grabbed keys during the lifetime of the program. All the calls to XGrabKey seemed like a lot of overhead to me.
So I did something different: my program is, for other reasons, using the Xkb extension, and processing XkbStateNotifyEvent to track the state of modifier keys. When Ctrl is pressed I grab the keys I want with AnyModifier, and when it is released I release them. This works for me, but I don't like it, so I think I will probably try what Glynn has suggested. Cheers Tom 2010/1/24 Glynn Clements <[email protected]>: > > Nokan Emiro wrote: > >> I need to catch all the Alt+F8 keypresses in my program, >> and I do it this way: >> >> XGrabKey(display, XKeysymToKeycode(display, F8), Mod1Mask, root_window, >> True, GrabModeAsync, GrabModeAsync); >> >> This works fine if no lock keys (ScrollLock, NumLock, >> CapsLock or combinations of these) are active. >> >> Which one is the nicest way to catch Alt+F8 >> irrespectively of the state of Lock keys? > > Grab F8 with all combinations of lock modifiers in addition to Mod1, > i.e. 2^N separate grabs, where N is the number of lock modifiers. > > -- > Glynn Clements <[email protected]> > _______________________________________________ > xorg mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/xorg > _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
