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
|
static void
|
||||||
update_modifier_state(uint16 modifiers, BOOL pressed)
|
update_modifier_state(uint16 modifiers, BOOL pressed)
|
||||||
{
|
{
|
||||||
|
17
xwin.c
17
xwin.c
@ -435,19 +435,6 @@ ui_destroy_window()
|
|||||||
display = NULL;
|
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
|
void
|
||||||
xwin_toggle_fullscreen()
|
xwin_toggle_fullscreen()
|
||||||
@ -582,8 +569,8 @@ xwin_process_events()
|
|||||||
XUngrabKeyboard(display, CurrentTime);
|
XUngrabKeyboard(display, CurrentTime);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FocusOut:
|
case FocusIn:
|
||||||
xwin_reset_keys();
|
reset_modifier_keys();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Expose:
|
case Expose:
|
||||||
|
Loading…
Reference in New Issue
Block a user