mirror of
https://github.com/reactos/reactos.git
synced 2026-05-31 08:17:09 +08: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:
@@ -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... */
|
||||
|
||||
Reference in New Issue
Block a user