Hello, I'm going to use wine to use a gps software on my carpc. The GPS software runs great but when the window loses focus it hangs until the windows gets focus back. I guess this is really a fault of the application, I assume it does the same without wine (I actually never tried it outside wine so I don't know). Anyway because it's under wine it's easy to workaround it. I want to iconize the gps software and go back in elisa media player and still hear the directions in the speakers mixed with the music by alsa. First I just uncommented the focusout event (same as WoW) but that wasn't enough. When I iconize elisa and I return into the gps, the windows doesn't redraw and I have to click some random button to trigger a redraw. So I forced a focusout/focusin event inside the x11 focusin handler. That fixed all my troubles with the focus events. So this is the workaround: Index: wine-1.1.7/dlls/winex11.drv/event.c --- wine-1.1.7/dlls/winex11.drv/event.c.orig 2008-10-24 17:55:14.000000000 +0200 +++ wine-1.1.7/dlls/winex11.drv/event.c 2008-11-06 00:25:37.000000000 +0100 @@ -620,6 +620,8 @@ static void X11DRV_FocusIn( HWND hwnd, X XSetICFocus( xic ); wine_tsx11_unlock(); } + SetForegroundWindow( GetDesktopWindow() ); + SetForegroundWindow( hwnd ); if (use_take_focus) return; /* ignore FocusIn if we are using take focus */ if (!can_activate_window(hwnd)) @@ -685,7 +687,7 @@ static void X11DRV_FocusOut( HWND hwnd, if (hwnd == GetForegroundWindow()) { TRACE( "lost focus, setting fg to desktop\n" ); - SetForegroundWindow( GetDesktopWindow() ); + //SetForegroundWindow( GetDesktopWindow() ); } } } Second problem was sound. Sounds is garbled with the alsa driver (oss works but that doesn't allow mixing, aoss used to work around it, but not anymore). I could use tricks with .asoundrc to fix it: pcm.!default { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:0,0" # change this if you use other sound period_size 256 buffer_size 8192 } } The trouble is wine trying to force weird defaults on alsa on two params that renders period_size/buffer_size not power of 2 inside the driver and that makes the app sound ring it go out of sync. Since I've to rebuild wine for the focus problem I preferred to fix this as well in wine instead of in .asoundrc: Index: wine-1.1.7/dlls/winealsa.drv/waveout.c --- wine-1.1.7/dlls/winealsa.drv/waveout.c.orig 2008-10-24 17:55:14.000000000 +0200 +++ wine-1.1.7/dlls/winealsa.drv/waveout.c 2008-11-05 19:49:37.000000000 +0100 @@ -577,8 +577,8 @@ static DWORD wodOpen(WORD wDevID, LPWAVE snd_pcm_access_t access; snd_pcm_format_t format = -1; unsigned int rate; - unsigned int buffer_time = 120000; - unsigned int period_time = 20000; + //unsigned int buffer_time = 120000; + //unsigned int period_time = 20000; snd_pcm_uframes_t buffer_size; snd_pcm_uframes_t period_size; int flags; @@ -753,9 +753,9 @@ static DWORD wodOpen(WORD wDevID, LPWAVE ALSA_getFormat(wwo->format.Format.wFormatTag)); dir=0; - EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_time_near(pcm, hw_params, &buffer_time, &dir), MMSYSERR_INVALPARAM, "unable to set buffer time"); + //EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_time_near(pcm, hw_params, &buffer_time, &dir), MMSYSERR_INVALPARAM, "unable to set buffer time"); dir=0; - EXIT_ON_ERROR( snd_pcm_hw_params_set_period_time_near(pcm, hw_params, &period_time, &dir), MMSYSERR_INVALPARAM, "unable to set period time"); + //EXIT_ON_ERROR( snd_pcm_hw_params_set_period_time_near(pcm, hw_params, &period_time, &dir), MMSYSERR_INVALPARAM, "unable to set period time"); EXIT_ON_ERROR( snd_pcm_hw_params(pcm, hw_params), MMSYSERR_INVALPARAM, "unable to set hw params for playback"); The second patch perhaps could be considered to be merged, I've no idea about the first patch (but a workaround for the focus problem being available in winecfg surely would be nice considering WoW needs it too, and no I'm not wasting time with videogames, I simply found about it while searching for 'wine focus'). Hope this helps in case somebody had similar issues. I'm offlist so keep me in CC if you want to contact me. Thanks!