update save_remote_modifier when keyup on a modifier
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@1404 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
808a7b09c9
commit
7f786d64d4
52
xkeymap.c
52
xkeymap.c
@ -679,6 +679,36 @@ xkeymap_translate_key(uint32 keysym, unsigned int keycode, unsigned int state)
|
||||
return tr;
|
||||
}
|
||||
|
||||
static RD_BOOL
|
||||
is_modifier(uint8 scancode)
|
||||
{
|
||||
switch (scancode)
|
||||
{
|
||||
case SCANCODE_CHAR_LSHIFT:
|
||||
case SCANCODE_CHAR_RSHIFT:
|
||||
case SCANCODE_CHAR_LCTRL:
|
||||
case SCANCODE_CHAR_RCTRL:
|
||||
case SCANCODE_CHAR_LALT:
|
||||
case SCANCODE_CHAR_RALT:
|
||||
case SCANCODE_CHAR_LWIN:
|
||||
case SCANCODE_CHAR_RWIN:
|
||||
case SCANCODE_CHAR_NUMLOCK:
|
||||
return True;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return False;
|
||||
}
|
||||
|
||||
static void
|
||||
save_remote_modifiers_if_modifier(uint8 scancode)
|
||||
{
|
||||
if (!is_modifier(scancode))
|
||||
return;
|
||||
|
||||
saved_remote_modifier_state = remote_modifier_state;
|
||||
}
|
||||
|
||||
void
|
||||
xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint32 ev_time,
|
||||
RD_BOOL pressed, uint8 nesting)
|
||||
@ -702,6 +732,7 @@ xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint3
|
||||
{
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, tr.scancode);
|
||||
restore_remote_modifiers(ev_time, tr.scancode);
|
||||
save_remote_modifiers_if_modifier(tr.scancode);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -762,27 +793,6 @@ get_ksname(uint32 keysym)
|
||||
return ksname;
|
||||
}
|
||||
|
||||
static RD_BOOL
|
||||
is_modifier(uint8 scancode)
|
||||
{
|
||||
switch (scancode)
|
||||
{
|
||||
case SCANCODE_CHAR_LSHIFT:
|
||||
case SCANCODE_CHAR_RSHIFT:
|
||||
case SCANCODE_CHAR_LCTRL:
|
||||
case SCANCODE_CHAR_RCTRL:
|
||||
case SCANCODE_CHAR_LALT:
|
||||
case SCANCODE_CHAR_RALT:
|
||||
case SCANCODE_CHAR_LWIN:
|
||||
case SCANCODE_CHAR_RWIN:
|
||||
case SCANCODE_CHAR_NUMLOCK:
|
||||
return True;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return False;
|
||||
}
|
||||
|
||||
void
|
||||
save_remote_modifiers(uint8 scancode)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user