<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><p>hi, sometime  modifier key state is not right.</p><p> </p><p>Spice-Warning **: inputs_channel.c:442:inputs_channel_handle_parsed: YYYYYY 0 leds=0, modifiers=6<br>Spice-Warning **: inputs_channel.c:442:inputs_channel_handle_parsed: YYYYYY 1 leds=0, modifiers=6<br>Spice-Warning **: inputs_channel.c:442:inputs_channel_handle_parsed: YYYYYY 2 leds=0, modifiers=6</p><p> </p><p> </p><p>that is my modified code:inputs_channel.c</p><p>case SPICE_MSGC_INPUTS_KEY_MODIFIERS: {<br>        SpiceMsgcKeyModifiers *modifiers = (SpiceMsgcKeyModifiers *)buf;<br>        uint8_t leds;<br>        int i = 0;</p><p>        if (!keyboard) {<br>            break;<br>        }</p><p>        for(i=0; i<3; i++){<br>                leds = kbd_get_leds(keyboard);<br>                spice_warning("YYYYYY %d leds=%d, modifiers=%d", i, leds, modifiers->modifiers);<br>                if (leds == modifiers->modifiers)<br>                        break;<br>                if ((modifiers->modifiers & SPICE_KEYBOARD_MODIFIER_FLAGS_SCROLL_LOCK) !=<br>                    (leds & SPICE_KEYBOARD_MODIFIER_FLAGS_SCROLL_LOCK)) {<br>                    kbd_push_scan(keyboard, SCROLL_LOCK_SCAN_CODE);<br>                    kbd_push_scan(keyboard, SCROLL_LOCK_SCAN_CODE | 0x80);<br>                }<br>                if ((modifiers->modifiers & SPICE_KEYBOARD_MODIFIER_FLAGS_NUM_LOCK) !=<br>                    (leds & SPICE_KEYBOARD_MODIFIER_FLAGS_NUM_LOCK)) {<br>                    kbd_push_scan(keyboard, NUM_LOCK_SCAN_CODE);<br>                    kbd_push_scan(keyboard, NUM_LOCK_SCAN_CODE | 0x80);<br>                }<br>                if ((modifiers->modifiers & SPICE_KEYBOARD_MODIFIER_FLAGS_CAPS_LOCK) !=<br>                    (leds & SPICE_KEYBOARD_MODIFIER_FLAGS_CAPS_LOCK)) {<br>                    kbd_push_scan(keyboard, CAPS_LOCK_SCAN_CODE);<br>                    kbd_push_scan(keyboard, CAPS_LOCK_SCAN_CODE | 0x80);<br>                }<br>        }<br>        activate_modifiers_watch();<br>        break;<br>    }</p></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>