vnc: Adjust lock state sync logic with VNC_FEATURE_LED_STATE
Signed-off-by: Lei Li <lilei@linux.vnet.ibm.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1366867752-11578-4-git-send-email-lilei@linux.vnet.ibm.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
ab99e5c1d9
commit
e7b2aaccd9
5
ui/vnc.c
5
ui/vnc.c
@ -1613,7 +1613,11 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Turn off the lock state sync logic if the client support the led
|
||||||
|
state extension.
|
||||||
|
*/
|
||||||
if (down && vs->vd->lock_key_sync &&
|
if (down && vs->vd->lock_key_sync &&
|
||||||
|
!vnc_has_feature(vs, VNC_FEATURE_LED_STATE) &&
|
||||||
keycode_is_keypad(vs->vd->kbd_layout, keycode)) {
|
keycode_is_keypad(vs->vd->kbd_layout, keycode)) {
|
||||||
/* If the numlock state needs to change then simulate an additional
|
/* If the numlock state needs to change then simulate an additional
|
||||||
keypress before sending this one. This will happen if the user
|
keypress before sending this one. This will happen if the user
|
||||||
@ -1633,6 +1637,7 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (down && vs->vd->lock_key_sync &&
|
if (down && vs->vd->lock_key_sync &&
|
||||||
|
!vnc_has_feature(vs, VNC_FEATURE_LED_STATE) &&
|
||||||
((sym >= 'A' && sym <= 'Z') || (sym >= 'a' && sym <= 'z'))) {
|
((sym >= 'A' && sym <= 'Z') || (sym >= 'a' && sym <= 'z'))) {
|
||||||
/* If the capslock state needs to change then simulate an additional
|
/* If the capslock state needs to change then simulate an additional
|
||||||
keypress before sending this one. This will happen if the user
|
keypress before sending this one. This will happen if the user
|
||||||
|
Loading…
Reference in New Issue
Block a user