On Tue, May 21, 2013 at 10:38:00AM +0200, Paolo Bonzini wrote: > Il 21/05/2013 10:33, Amos Kong ha scritto: > > On Thu, May 16, 2013 at 05:20:37PM +0200, Paolo Bonzini wrote: > >> Il 16/05/2013 17:17, Peter Maydell ha scritto: > >>> On 16 May 2013 16:09, Paolo Bonzini <pbonz...@redhat.com> wrote: > >>>> ... In XWindows, you get a KeyRelease for every KeyPress Event. In X, > >>>> it looks something like this: > >>>> > >>>> PRPRPRPRPRPRPRPR > >>> > >>> Shouldn't we be abstracting this platform difference > >>> out in the ui layer, rather than having to deal with it > >>> in the ps2 device model? That is, we should define what > >>> our key-repeat model is for the QEMU keyboard-event-handler > >>> API, and then make sure all our UI frontends (gtk, sdl, > >>> cocoa, etc) do what we require... > >> > >> Yes, I am asking Amos to check which of our frontends comply. > >> > >> It needs to be checked in the host, because Linux guests emulate > >> autorepeat anyway. Or you can test with FreeDOS. > > > > Please correct me if something is wrong, thanks. > > > > When we use VNC/SPICE/SDL, vm Window will captured the key events, > > then qemu process the events and transfer to guest through emulated PS2 > > device. > > > > When we hold the key in keyboard of host, real keyboard or host OS will > > do auto-repeat. vm Window will transfer repeated events to guest. > > In this case, it seems the auto-repeat of emulated PS2 device doesn't > > needed. > > If you can make emulated autorepeat work also with VNC/SDL/SPICE, it > would be much better, because then the guest can choose to enable or > disable the autorepeat as desired. > > That's why I mentioned testing with FreeDOS, which does no emulation. > You can find DOS programs to change the typematic rate.
Yes, if we don't process events from host, the rate set in guest doesn't work for SDL/VNC/SPICE/.. I have fixed it by ignoring continual/repated(same keycode) press events. It works now :) I just tested by Linux guest (set rate by 'kbdrate -s ..'), will test with FreeDOS. Amos.