Automatically release and re-press any active modifier keys before sending Alt-codes.

This commit is contained in:
Michael Jumper 2012-03-20 21:06:18 -07:00
parent b9a1652049
commit f278bacfa0

View File

@ -236,6 +236,9 @@ void __guac_rdp_send_altcode(guac_client* client, const char* altcode) {
/* Lookup scancode for Alt */
int alt = GUAC_RDP_KEYSYM_LOOKUP(*keysym_scancodes, 0xFFE9 /* Alt_L */).scancode;
/* Release all pressed modifiers */
__guac_rdp_update_keysyms(client, GUAC_KEYSYMS_ALL_MODIFIERS, 1, 0);
/* Press Alt */
rdp_inst->input->KeyboardEvent(rdp_inst->input, KBD_FLAGS_DOWN, alt);
@ -256,6 +259,9 @@ void __guac_rdp_send_altcode(guac_client* client, const char* altcode) {
/* Release Alt */
rdp_inst->input->KeyboardEvent(rdp_inst->input, KBD_FLAGS_RELEASE, alt);
/* Press all originally pressed modifiers */
__guac_rdp_update_keysyms(client, GUAC_KEYSYMS_ALL_MODIFIERS, 1, 1);
}
int __guac_rdp_send_keysym(guac_client* client, int keysym, int pressed) {