Resetting Windows key state in reset_modifiers

git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@547 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Peter Åstrand 2003-11-11 14:01:31 +00:00
parent 58c2cbd12a
commit d22aeb2015

View File

@ -276,6 +276,17 @@ send_winkey(uint32 ev_time, BOOL pressed, BOOL leftkey)
} }
} }
static void
reset_winkey(uint32 ev_time)
{
if (g_use_rdp5)
{
/* For some reason, it seems to suffice to release
*either* the left or right winkey. */
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LWIN);
}
}
/* Handles, for example, multi-scancode keypresses (which is not /* Handles, for example, multi-scancode keypresses (which is not
possible via keymap-files) */ possible via keymap-files) */
BOOL BOOL
@ -600,6 +611,8 @@ reset_modifier_keys()
!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))
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT); rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);
reset_winkey(ev_time);
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);
} }