From: Michael Jumper Date: Wed, 21 Mar 2012 04:06:18 +0000 (-0700) Subject: Automatically release and re-press any active modifier keys before sending Alt-codes. X-Git-Url: http://git.alex.org.uk Automatically release and re-press any active modifier keys before sending Alt-codes. --- diff --git a/src/guac_handlers.c b/src/guac_handlers.c index bfb7bda..051166a 100644 --- a/src/guac_handlers.c +++ b/src/guac_handlers.c @@ -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) {