xwin_reset_keys -> reset_modifier_keys. Only when necessary
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@169 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
4cc46cbe11
commit
8c203e862f
28
xkeymap.c
28
xkeymap.c
@ -420,6 +420,34 @@ ensure_remote_modifiers(uint32 ev_time, key_translation tr)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
reset_modifier_keys()
|
||||
{
|
||||
/* reset keys */
|
||||
uint32 ev_time;
|
||||
ev_time = time(NULL);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapLeftShiftMask) && !get_key_state(XK_Shift_L))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapRightShiftMask) && !get_key_state(XK_Shift_R))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RSHIFT);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapLeftCtrlMask) && !get_key_state(XK_Control_L))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LCTRL);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapRightCtrlMask) && !get_key_state(XK_Control_R))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RCTRL);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapLeftAltMask) && !get_key_state(XK_Alt_L))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT);
|
||||
|
||||
if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) &&
|
||||
!get_key_state(XK_Alt_R) && !get_key_state(XK_Mode_switch))
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
update_modifier_state(uint16 modifiers, BOOL pressed)
|
||||
{
|
||||
|
17
xwin.c
17
xwin.c
@ -435,19 +435,6 @@ ui_destroy_window()
|
||||
display = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
xwin_reset_keys()
|
||||
{
|
||||
/* reset keys */
|
||||
uint32 ev_time;
|
||||
ev_time = time(NULL);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LCTRL);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RCTRL);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);
|
||||
rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RSHIFT);
|
||||
}
|
||||
|
||||
void
|
||||
xwin_toggle_fullscreen()
|
||||
@ -582,8 +569,8 @@ xwin_process_events()
|
||||
XUngrabKeyboard(display, CurrentTime);
|
||||
break;
|
||||
|
||||
case FocusOut:
|
||||
xwin_reset_keys();
|
||||
case FocusIn:
|
||||
reset_modifier_keys();
|
||||
break;
|
||||
|
||||
case Expose:
|
||||
|
Loading…
Reference in New Issue
Block a user