>   locale(LC_ALL,"");
>   ...
>   keysym = XKeycodeToKeysym (dpy, keycode,0);
>   std::cout << (int) keycode << " " << (int) keysym << std::endl;
>   XSync (dpy, False);
>   keysym = XKeycodeToKeysym (dpy, keycode,0);
>   std::cout << (int) keycode << " " << (int) keysym << std::endl;
> 
> gives
> 24 97
> 24 113
> 
> So, Xsync changes the keymap from "fr" to "us". But when I add at the 
> beginning: system("setxkbmap fr"), it works.
> 24 97
> 24 97
> 
> What can I do ? 
X
Does it work with the XKB version of the call:
  keysym = XkbKeycodeToKeysym (dpy, keycode,0, 0);
n
-->
Thank you.
The behaviour of the two function (XKeycode... and XkbKeycode...) is the same. 
The problem is not the function, but the behaviour of Xsync, which change the 
keymap. At the beginning, the keymap is "fr", after Xsync it becomme and rest 
"en". But when I execute "system("setxkbmap fr") before, it works.
What is painful is that the bug is random, one time, it works, one time it 
don't work. But the setxkbmap fr hack works all the time.
Maybe, the solution is to "refresh" the config of the keymap at the beginning 
of the program like with XkbRefreshKeyboardMapping but I don't understand how 
it works.

greetings.
Sorry for my english.
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to