* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Window timers messages
- * FILE: subsystems/win32/win32k/ntuser/timer.c
+ * FILE: win32ss/user/ntuser/timer.c
* PROGRAMER: Gunnar
* Thomas Weidenmueller (w3seek@users.sourceforge.net)
* Michael Martin (michael.martin@reactos.org)
if ( pDesk->dwDTFlags & DF_TME_HOVER &&
pWnd == pDesk->spwndTrack )
{
- Point = pWnd->head.pti->MessageQueue->MouseMoveMsg.pt;
+ Point = gpsi->ptCursor;
if ( RECTL_bPointInRect(&pDesk->rcMouseHover, Point.x, Point.y) )
{
if (pDesk->htEx == HTCLIENT) // In a client area.
{
- wParam = UserGetMouseButtonsState();
+ wParam = MsqGetDownKeyState(pWnd->head.pti->MessageQueue);
Msg = WM_MOUSEHOVER;
if (pWnd->ExStyle & WS_EX_LAYOUTRTL)
}
return; // Not this window so just return.
+ case ID_EVENT_SYSTIMER_FLASHWIN:
+ {
+ FLASHWINFO fwi =
+ {sizeof(FLASHWINFO),
+ UserHMGetHandle(pWnd),
+ FLASHW_SYSTIMER,0,0};
+
+ IntFlashWindowEx(pWnd, &fwi);
+ }
+ return;
+
default:
ERR("System Timer Proc invalid id %u!\n", idEvent);
break;
PTHREADINFO pti;
BOOL Hit = FALSE;
PTIMER pTmr;
+ LARGE_INTEGER TickCount;
pti = PsGetCurrentThreadWin32Thread();
(pTmr->pti == pti) &&
((pTmr->pWnd == Window) || (Window == NULL)) )
{
+ KeQueryTickCount(&TickCount);
+
Msg.hwnd = (pTmr->pWnd) ? pTmr->pWnd->head.h : 0;
Msg.message = (pTmr->flags & TMRF_SYSTEM) ? WM_SYSTIMER : WM_TIMER;
Msg.wParam = (WPARAM) pTmr->nID;
Msg.lParam = (LPARAM) pTmr->pfn;
+ Msg.time = MsqCalculateMessageTime(&TickCount);
+ // Fix all wine win:test_GetMessagePos WM_TIMER tests. See CORE-10867.
+ Msg.pt = gpsi->ptCursor;
- MsqPostMessage(pti, &Msg, FALSE, (QS_POSTMESSAGE|QS_ALLPOSTMESSAGE), 0);
+ MsqPostMessage(pti, &Msg, FALSE, (QS_POSTMESSAGE|QS_ALLPOSTMESSAGE), 0, 0);
pTmr->flags &= ~TMRF_READY;
ClearMsgBitsMask(pti, QS_TIMER);
Hit = TRUE;
PTIMER pTmr;
BOOL TimersRemoved = FALSE;
- if ((Window == NULL))
+ if (Window == NULL)
return FALSE;
TimerEnterExclusive();
IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
{
PTIMER pTmr = NULL;
- TRACE("IntKillTimer Window %p id %p systemtimer %s\n",
+ TRACE("IntKillTimer Window %p id %uI systemtimer %s\n",
Window, IDEvent, SystemTimer ? "TRUE" : "FALSE");
TimerEnterExclusive();
ExInitializeFastMutex(Mutex);
- BitmapBytes = ROUND_UP(NUM_WINDOW_LESS_TIMERS, sizeof(ULONG) * 8) / 8;
+ BitmapBytes = ALIGN_UP_BY(NUM_WINDOW_LESS_TIMERS, sizeof(ULONG) * 8) / 8;
WindowLessTimersBitMapBuffer = ExAllocatePoolWithTag(NonPagedPool, BitmapBytes, TAG_TIMERBMP);
if (WindowLessTimersBitMapBuffer == NULL)
{
BOOL
APIENTRY
NtUserValidateTimerCallback(
- HWND hWnd,
- WPARAM wParam,
LPARAM lParam)
{
BOOL Ret = FALSE;