* 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)
}
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, 0);
pTmr->flags &= ~TMRF_READY;
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;