420 |
} |
} |
421 |
|
|
422 |
|
|
423 |
|
void |
424 |
|
reset_modifier_keys() |
425 |
|
{ |
426 |
|
/* reset keys */ |
427 |
|
uint32 ev_time; |
428 |
|
ev_time = time(NULL); |
429 |
|
|
430 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapLeftShiftMask) && !get_key_state(XK_Shift_L)) |
431 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT); |
432 |
|
|
433 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapRightShiftMask) && !get_key_state(XK_Shift_R)) |
434 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RSHIFT); |
435 |
|
|
436 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapLeftCtrlMask) && !get_key_state(XK_Control_L)) |
437 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LCTRL); |
438 |
|
|
439 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapRightCtrlMask) && !get_key_state(XK_Control_R)) |
440 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RCTRL); |
441 |
|
|
442 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapLeftAltMask) && !get_key_state(XK_Alt_L)) |
443 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT); |
444 |
|
|
445 |
|
if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) && |
446 |
|
!get_key_state(XK_Alt_R) && !get_key_state(XK_Mode_switch)) |
447 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); |
448 |
|
} |
449 |
|
|
450 |
|
|
451 |
static void |
static void |
452 |
update_modifier_state(uint16 modifiers, BOOL pressed) |
update_modifier_state(uint16 modifiers, BOOL pressed) |
453 |
{ |
{ |