Reimplemented GetLastActivePopup to get the information from the

server.
This commit is contained in:
Alexandre Julliard 2002-10-12 01:23:05 +00:00
parent 5030bda77c
commit 0b850f9f74
2 changed files with 8 additions and 21 deletions

View File

@ -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 */

View File

@ -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;
}