From d3f4fb4929284085b8d634f932299e672eaa692e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 9 Sep 2008 11:33:06 +0200 Subject: [PATCH] user32: Fix DeferWindowPos to work on windows belonging to other processes. --- dlls/user32/winpos.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index 2bbaab97d64..21e1554d059 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -2187,13 +2187,16 @@ BOOL WINAPI EndDeferWindowPos( HDWP hdwp ) pDWP = (DWP *) USER_HEAP_LIN_ADDR( hdwp ); if (!pDWP) return FALSE; - for (i = 0, winpos = pDWP->winPos; i < pDWP->actualCount; i++, winpos++) + for (i = 0, winpos = pDWP->winPos; res && i < pDWP->actualCount; i++, winpos++) { TRACE("hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n", winpos->hwnd, winpos->hwndInsertAfter, winpos->x, winpos->y, winpos->cx, winpos->cy, winpos->flags); - if (!(res = USER_SetWindowPos( winpos ))) break; + if (WIN_IsCurrentThread( winpos->hwnd )) + res = USER_SetWindowPos( winpos ); + else + res = SendMessageW( winpos->hwnd, WM_WINE_SETWINDOWPOS, 0, (LPARAM)winpos ); } USER_HEAP_FREE( hdwp ); return res;