Comment 58 for bug 251709

Revision history for this message
Andrey Korshenko (akmail) wrote :

I tested rdesktop from PPA and found some problem with alt key:
When i press Alt+Shift (left Alt+Shift) layout must change (EN <-> RU) but nothing happen. But, it working with right Alt + right Shift !
With enabled debuging (--with-debug-kbd) when i press left Alt key i see in console:

vk_handle_key = 0x40 vk = 0x0
Before: vk_handle_key = 0x40 vk = 0x0

next, i found this code:
vk = vkscancode[ xkey->keycode];
DEBUG_KBD(( "vk_handle_key = 0x%x vk = 0x%x\n", xkey->keycode, vk));

as i understand vk = 0x0 because keycode 0x40 can not be found in vkscancodes[] array. Ok, looking on xkeymap_init(void) function:
vkscancode[XKeysymToKeycode(g_display, XK_Alt_L)] = SCANCODE_CHAR_LALT;

There we have XKeysymToKeycode(g_display, XK_Alt_L) function. It must return 0x40 keycode, but if we add next line at the end of xkeymap_init() function:
+ DEBUG_KBD(("Scancode1: 0x%x, scancode2=0x%x\n", XKeysymToKeycode(g_display, XK_Alt_L), SCANCODE_CHAR_LALT));

we will see:
Scancode1: 0xcc, scancode2=0x38

it return 0xCC , why?
Sorry if i don't understand something.