On Wed, Jul 13, 2005 at 08:06:54AM +0400, Alexey Tourbin wrote: > > > Под Xvfb не работает XKeysymToKeycode() -- возвращает 0. > > > Это в процессе запроса на нажатие Alt (keysym=65513). [...] > Проблема решилась так: > > --- X11-GUITest-0.20/GUITest.xs- 2004-01-16 23:41:42 +0000 > +++ X11-GUITest-0.20/GUITest.xs 2005-07-13 01:35:14 +0000 > @@ -213,6 +213,15 @@ > return( GetKeySym(key, sym) ); > } > > +/* Xvfb lacks XK_Alt_L; fall back to XK_Meta_L */ > +#define XKeysymToKeycode(display, sym) \ > +({ Display *d = (display); KeySym s = (sym); \ > + KeyCode kc = (XKeysymToKeycode)(d, s); \ > + if (kc == 0 && s == XK_Alt_L) \ > + kc = (XKeysymToKeycode)(d, XK_Meta_L); \ > + kc; \ > +}) > + > /* Function: PressKeyImp > * Description: Presses the key for the specified keysym. Lower-level > * implementation. По поводу клавиатуры у Xvfb меня одолевает нехорошее предчувствие: XK_Meta_L он тоже плохо понимает. Всё чудесатее и чудесатее. Вот пока программка, которая выдает на stderr клавиатурные события.