276 |
} |
} |
277 |
} |
} |
278 |
|
|
279 |
|
static void |
280 |
|
reset_winkey(uint32 ev_time) |
281 |
|
{ |
282 |
|
if (g_use_rdp5) |
283 |
|
{ |
284 |
|
/* For some reason, it seems to suffice to release |
285 |
|
*either* the left or right winkey. */ |
286 |
|
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LWIN); |
287 |
|
} |
288 |
|
} |
289 |
|
|
290 |
/* Handles, for example, multi-scancode keypresses (which is not |
/* Handles, for example, multi-scancode keypresses (which is not |
291 |
possible via keymap-files) */ |
possible via keymap-files) */ |
292 |
BOOL |
BOOL |
611 |
!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)) |
612 |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); |
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); |
613 |
|
|
614 |
|
reset_winkey(ev_time); |
615 |
|
|
616 |
rdp_send_input(ev_time, RDP_INPUT_SYNCHRONIZE, 0, ui_get_numlock_state(state), 0); |
rdp_send_input(ev_time, RDP_INPUT_SYNCHRONIZE, 0, ui_get_numlock_state(state), 0); |
617 |
} |
} |
618 |
|
|