diff --git a/include/win.h b/include/win.h index c83e9e16f3e..7f7355999c5 100644 --- a/include/win.h +++ b/include/win.h @@ -55,7 +55,6 @@ typedef struct tagWND HGLOBAL16 hmemTaskQ; /* Task queue global memory handle */ HRGN hrgnUpdate; /* Update region */ HRGN hrgnWnd; /* window's region */ - HWND hwndLastActive;/* Last active popup hwnd */ DWORD dwStyle; /* Window style (from CreateWindow) */ DWORD dwExStyle; /* Extended style (from CreateWindowEx) */ DWORD clsStyle; /* Class style at window creation */ diff --git a/windows/win.c b/windows/win.c index 516f6442bcf..d19cc09f646 100644 --- a/windows/win.c +++ b/windows/win.c @@ -763,7 +763,6 @@ BOOL WIN_CreateDesktopWindow(void) pWndDesktop->text = NULL; pWndDesktop->hmemTaskQ = 0; pWndDesktop->hrgnUpdate = 0; - pWndDesktop->hwndLastActive = hwndDesktop; pWndDesktop->clsStyle = clsStyle; pWndDesktop->dce = NULL; pWndDesktop->pVScroll = NULL; @@ -1104,7 +1103,6 @@ static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, ATOM classAtom, wndPtr->hmemTaskQ = InitThreadInput16( 0, 0 ); wndPtr->hrgnUpdate = 0; wndPtr->hrgnWnd = 0; - wndPtr->hwndLastActive = hwnd; wndPtr->dwStyle = cs->style & ~WS_VISIBLE; wndPtr->dwExStyle = cs->dwExStyle; wndPtr->clsStyle = clsStyle; @@ -1489,8 +1487,6 @@ BOOL WINAPI DestroyWindow( HWND hwnd ) if (!is_child) { - HWND owner; - for (;;) { int i, got_one = 0; @@ -1512,16 +1508,6 @@ BOOL WINAPI DestroyWindow( HWND hwnd ) } if (!got_one) break; } - - if ((owner = GetWindow( hwnd, GW_OWNER ))) - { - WND *ptr = WIN_FindWndPtr( owner ); - if (ptr) - { - if (ptr->hwndLastActive == hwnd) ptr->hwndLastActive = owner; - WIN_ReleaseWndPtr( ptr ); - } - } } /* Send destroy messages */ @@ -2856,12 +2842,14 @@ BOOL WINAPI ShowOwnedPopups( HWND owner, BOOL fShow ) */ HWND WINAPI GetLastActivePopup( HWND hwnd ) { - HWND retval; - WND *wndPtr =WIN_FindWndPtr(hwnd); - if (!wndPtr) return hwnd; - retval = wndPtr->hwndLastActive; - if (!IsWindow( retval )) retval = wndPtr->hwndSelf; - WIN_ReleaseWndPtr(wndPtr); + HWND retval = hwnd; + + SERVER_START_REQ( get_window_info ) + { + req->handle = hwnd; + if (!wine_server_call_err( req )) retval = reply->last_active; + } + SERVER_END_REQ; return retval; }