• Stefan Dösinger's avatar
    user32: Silently ignore temporary foreground loss. · ccf430eb
    Stefan Dösinger authored
    The basic problem is this: Thread A has a window W1 that is it's focus
    window and the system-global foreground window. At some point thread A
    stops processing messages. After that, thread B creates a window W2
    and makes it the foreground window. Thread B later on makes W1 (from
    Thread A) the foreground window again. After restoring W1 as the
    foreground window, Thread A processes window messages again. Two
    WM_WINE_SETACTIVEWINDOW messages are in the queue, one for losing the
    foreground thread propery and one for restoring it. The first one will
    generates a WM_ACTIVATEAPP(0) message, which causes D3D to minimize
    the game window.
    
    The included test shows that Windows doesn't deliver any
    WM_ACTIVATEAPP messages if the thread stopped being the foreground
    thread and re-gained that property between two message processing
    calls. It isn't implemented with a plain WM_ACTIVATEAPP filter, the
    manually injected message in the test still gets through.
    Signed-off-by: 's avatarStefan Dösinger <stefan@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    ccf430eb
Name
Last commit
Last update
..
resources Loading commit data...
tests Loading commit data...
Makefile.in Loading commit data...
button.c Loading commit data...
caret.c Loading commit data...
class.c Loading commit data...
clipboard.c Loading commit data...
combo.c Loading commit data...
controls.h Loading commit data...
cursoricon.c Loading commit data...
dde_client.c Loading commit data...
dde_misc.c Loading commit data...
dde_private.h Loading commit data...
dde_server.c Loading commit data...
defdlg.c Loading commit data...
defwnd.c Loading commit data...
desktop.c Loading commit data...
dialog.c Loading commit data...
driver.c Loading commit data...
edit.c Loading commit data...
exticon.c Loading commit data...
focus.c Loading commit data...
hook.c Loading commit data...
icontitle.c Loading commit data...
input.c Loading commit data...
listbox.c Loading commit data...
lstr.c Loading commit data...
mdi.c Loading commit data...
menu.c Loading commit data...
message.c Loading commit data...
misc.c Loading commit data...
msgbox.c Loading commit data...
nonclient.c Loading commit data...
painting.c Loading commit data...
property.c Loading commit data...
resource.c Loading commit data...
resources.h Loading commit data...
scroll.c Loading commit data...
spy.c Loading commit data...
static.c Loading commit data...
sysparams.c Loading commit data...
text.c Loading commit data...
uitools.c Loading commit data...
user32.rc Loading commit data...
user32.spec Loading commit data...
user_main.c Loading commit data...
user_private.h Loading commit data...
win.c Loading commit data...
win.h Loading commit data...
winhelp.c Loading commit data...
winpos.c Loading commit data...
winproc.c Loading commit data...
winstation.c Loading commit data...
wsprintf.c Loading commit data...