40 |
extern Display *g_display; |
extern Display *g_display; |
41 |
extern Window g_wnd; |
extern Window g_wnd; |
42 |
extern char keymapname[16]; |
extern char keymapname[16]; |
43 |
extern int keylayout; |
extern int g_keylayout; |
44 |
extern int g_win_button_size; |
extern int g_win_button_size; |
45 |
extern BOOL g_enable_compose; |
extern BOOL g_enable_compose; |
46 |
extern BOOL g_use_rdp5; |
extern BOOL g_use_rdp5; |
137 |
/* map */ |
/* map */ |
138 |
if (strncmp(line, "map ", 4) == 0) |
if (strncmp(line, "map ", 4) == 0) |
139 |
{ |
{ |
140 |
keylayout = strtol(line + 4, NULL, 16); |
g_keylayout = strtol(line + 4, NULL, 16); |
141 |
DEBUG_KBD(("Keylayout 0x%x\n", keylayout)); |
DEBUG_KBD(("Keylayout 0x%x\n", g_keylayout)); |
142 |
continue; |
continue; |
143 |
} |
} |
144 |
|
|
408 |
} |
} |
409 |
} |
} |
410 |
|
|
411 |
|
if (((remote_modifier_state & MapLeftCtrlMask) |
412 |
|
|| (remote_modifier_state & MapRightCtrlMask)) && get_key_state(state, XK_Caps_Lock)) |
413 |
|
{ |
414 |
|
DEBUG_KBD(("CapsLock + Ctrl pressed, releasing LeftShift\n")); |
415 |
|
tr.modifiers ^= MapLeftShiftMask; |
416 |
|
} |
417 |
|
|
418 |
if (tr.scancode != 0) |
if (tr.scancode != 0) |
419 |
{ |
{ |
420 |
DEBUG_KBD(("Found key translation, scancode=0x%x, modifiers=0x%x\n", |
DEBUG_KBD(("Found key translation, scancode=0x%x, modifiers=0x%x\n", |
609 |
unsigned int |
unsigned int |
610 |
read_keyboard_state() |
read_keyboard_state() |
611 |
{ |
{ |
612 |
|
#ifdef RDP2VNC |
613 |
|
return 0; |
614 |
|
#else |
615 |
unsigned int state; |
unsigned int state; |
616 |
Window wdummy; |
Window wdummy; |
617 |
int dummy; |
int dummy; |
618 |
|
|
619 |
XQueryPointer(g_display, g_wnd, &wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state); |
XQueryPointer(g_display, g_wnd, &wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state); |
620 |
return state; |
return state; |
621 |
|
#endif |
622 |
} |
} |
623 |
|
|
624 |
|
|
663 |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT); |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT); |
664 |
|
|
665 |
if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) && |
if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) && |
666 |
!get_key_state(state, XK_Alt_R) && !get_key_state(state, XK_Mode_switch)) |
!get_key_state(state, XK_Alt_R) && !get_key_state(state, XK_Mode_switch) |
667 |
|
&& !get_key_state(state, XK_ISO_Level3_Shift)) |
668 |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); |
669 |
|
|
670 |
reset_winkey(ev_time); |
reset_winkey(ev_time); |