2 |
rdesktop: A Remote Desktop Protocol client. |
rdesktop: A Remote Desktop Protocol client. |
3 |
User interface services - X keyboard mapping |
User interface services - X keyboard mapping |
4 |
|
|
5 |
Copyright (C) Matthew Chapman 1999-2002 |
Copyright (C) Matthew Chapman 1999-2005 |
6 |
Copyright (C) Peter Astrand <peter@cendio.se> 2003 |
Copyright (C) Peter Astrand <peter@cendio.se> 2003 |
7 |
|
|
8 |
This program is free software; you can redistribute it and/or modify |
This program is free software; you can redistribute it and/or modify |
372 |
&& (get_key_state(state, XK_Alt_L) || get_key_state(state, XK_Alt_R))) |
&& (get_key_state(state, XK_Alt_L) || get_key_state(state, XK_Alt_R))) |
373 |
return True; |
return True; |
374 |
break; |
break; |
375 |
|
|
376 |
case XK_Num_Lock: |
case XK_Num_Lock: |
377 |
/* FIXME: We might want to do RDP_INPUT_SYNCHRONIZE here, if g_numlock_sync */ |
/* Synchronize on key release */ |
378 |
if (!g_numlock_sync) |
if (g_numlock_sync && !pressed) |
379 |
/* Inhibit */ |
rdp_send_input(0, RDP_INPUT_SYNCHRONIZE, 0, |
380 |
return True; |
ui_get_numlock_state(read_keyboard_state()), 0); |
381 |
|
|
382 |
|
/* Inhibit */ |
383 |
|
return True; |
384 |
break; |
break; |
385 |
|
|
386 |
} |
} |
412 |
} |
} |
413 |
} |
} |
414 |
|
|
415 |
|
if ((tr.modifiers & MapLeftShiftMask) && ((remote_modifier_state & MapLeftCtrlMask) |
416 |
|
|| (remote_modifier_state & MapRightCtrlMask)) |
417 |
|
&& get_key_state(state, XK_Caps_Lock)) |
418 |
|
{ |
419 |
|
DEBUG_KBD(("CapsLock + Ctrl pressed, releasing LeftShift\n")); |
420 |
|
tr.modifiers ^= MapLeftShiftMask; |
421 |
|
} |
422 |
|
|
423 |
if (tr.scancode != 0) |
if (tr.scancode != 0) |
424 |
{ |
{ |
425 |
DEBUG_KBD(("Found key translation, scancode=0x%x, modifiers=0x%x\n", |
DEBUG_KBD(("Found key translation, scancode=0x%x, modifiers=0x%x\n", |