mirror of
https://github.com/reactos/reactos.git
synced 2024-06-30 09:50:07 +00:00
[WIN32K] Check if the window being destroyed is currently tracked. (#103)
* [WIN32K] Check if the window being destroyed is currently tracked. CORE-13619
This commit is contained in:
parent
1eea9304e1
commit
9e4d2f1f9e
|
@ -342,6 +342,26 @@ UserSendMouseInput(MOUSEINPUT *pmi, BOOL bInjected)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
FASTCALL
|
||||
IntRemoveTrackMouseEvent(
|
||||
PDESKTOP pDesk)
|
||||
{
|
||||
/* Generate a leave message */
|
||||
if (pDesk->dwDTFlags & DF_TME_LEAVE)
|
||||
{
|
||||
UINT uMsg = (pDesk->htEx != HTCLIENT) ? WM_NCMOUSELEAVE : WM_MOUSELEAVE;
|
||||
UserPostMessage(UserHMGetHandle(pDesk->spwndTrack), uMsg, 0, 0);
|
||||
}
|
||||
/* Kill the timer */
|
||||
if (pDesk->dwDTFlags & DF_TME_HOVER)
|
||||
IntKillTimer(pDesk->spwndTrack, ID_EVENT_SYSTIMER_MOUSEHOVER, TRUE);
|
||||
|
||||
/* Reset state */
|
||||
pDesk->dwDTFlags &= ~(DF_TME_LEAVE|DF_TME_HOVER);
|
||||
pDesk->spwndTrack = NULL;
|
||||
}
|
||||
|
||||
BOOL
|
||||
FASTCALL
|
||||
IntQueryTrackMouseEvent(
|
||||
|
|
|
@ -381,6 +381,12 @@ DWORD FASTCALL IntGetWindowContextHelpId( PWND pWnd )
|
|||
return HelpId;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
FASTCALL
|
||||
IntRemoveTrackMouseEvent(
|
||||
PDESKTOP pDesk);
|
||||
|
||||
/***********************************************************************
|
||||
* IntSendDestroyMsg
|
||||
*/
|
||||
|
@ -422,6 +428,12 @@ static void IntSendDestroyMsg(HWND hWnd)
|
|||
{
|
||||
co_IntDestroyCaret(ti);
|
||||
}
|
||||
|
||||
/* If the window being destroyed is currently tracked... */
|
||||
if (ti->rpdesk->spwndTrack == Window)
|
||||
{
|
||||
IntRemoveTrackMouseEvent(ti->rpdesk);
|
||||
}
|
||||
}
|
||||
|
||||
/* If the window being destroyed is the current clipboard owner... */
|
||||
|
|
Loading…
Reference in a new issue