On January 28, 2012 at 3:52 PM Jan Kiszka <jan.kis...@web.de> wrote:
> On 2012-01-28 14:01, Erik Rull wrote:
> > Jan Kiszka wrote:
> >> On 2012-01-28 13:39, Erik Rull wrote:
> >>> Jan Kiszka wrote:
> >>>> On 2012-01-27 23:52, Jan Kiszka wrote:
> >>>>> On 2012-01-26 14:10, Erik Rull wrote:
> >>>>>> I assume from these results that the gui_grab is never set to 1 when
> >>>>>> having
> >>>>>> entered the window in windowed mode with the cursor.
> >>>>>>
> >>>>>> Maybe that's why the sdl_grab_start() is called so often.
> >>>>>>
> >>>>>> It seems that the condition in sdl_grab_start()
> >>>>>> (SDL_WM_GrabInput(SDL_GRAB_ON)
> >>>>>> == SDL_GRAB_ON) is never fulfilled, otherwise the gui_grab would be
> >>>>>> set to 1.
> >>>>>> But the cursor is actually grabbed in windowed mode, otherwise I
> >>>>>> would not be
> >>>>>> able to click somewhere with the guest-windows-cursor.
> >>>>>
> >>>>> This might be a SDL limitation which does not show up everywhere. Here
> >>>>> it's fine e.g.
> >>>>>
> >>>>> The logic dates back to "Handle SDL grabs failing (Mark McLoughlin)",
> >>>>> 6bb816031f. Maybe we can solve that issue without relying on the
> >>>>> obviously unreliable return value. Need to reproduce that one as well,
> >>>>> though.
> >>>>
> >>>> Please check if
> >>>>
> >>>> git://git.kiszka.org/qemu.git queues/sdl
> >>>>
> >>>> fixes the issue for you. Namely reverting the above commit should do
> >>>> the
> >>>> trick. I obsoleted that fragile patch in my series.
> >>>>
> >>>> Thanks,
> >>>> Jan
> >>>>
> >>>>
> >>>
> >>> Hi Jan,
> >>>
> >>> I will test this on monday. Can you tell me how I can merge that into my
> >>> cloned main qemu repository? I'm quite new to git.
> >>
> >> # git remote add kiszka git://git.kiszka.org/qemu.git
> >> # git fetch kiszka
> >> # git checkout kiszka/queues/sdl
> >>
> >> That way you will have what I have. Or do you need additional patches
> >> for your tests?
> >>
> >> Jan
> >>
> >
> > No I think this will be sufficient. Will this work if I will add it to
> > the qemu-kvm-1.0 tagged version?
>
> For your test, you can focus on applying
>
> http://git.kiszka.org/?p=qemu.git;a=commitdiff;h=0109c860ca59fddbecb47651be3cbf5135d8e82e
>
> on the target branch.
>
> > I have further issues when using the
> > current master because this version does not boot up Windows XP at the
> > moment. I was not able to bisect up to now where this issue was added.
>
> Hmm, works here. Which command line?
>
> Jan
>
Hi Jan,
I'm sorry, but this does not solve my issue. I applied the patch and crosschecked that the resulting file looks fine.
The final function looks like:
static void sdl_grab_start(void)
{
/*
* If the application is not active, do not try to enter grab state. This
* prevents 'SDL_WM_GrabInput(SDL_GRAB_ON)' from blocking all the
* application (SDL bug).
*/
if (!(SDL_GetAppState() & SDL_APPINPUTFOCUS)) {
return;
}
if (guest_cursor) {
SDL_SetCursor(guest_sprite);
if (!kbd_mouse_is_absolute() && !absolute_enabled)
SDL_WarpMouse(guest_x, guest_y);
} else
sdl_hide_cursor();
SDL_WM_GrabInput(SDL_GRAB_ON);
gui_grab = 1;
sdl_update_caption();
}
Best regards,
Erik