Author: jimtabor
Date: Sat Dec 10 06:00:38 2011
New Revision: 54633
URL:
http://svn.reactos.org/svn/reactos?rev=54633&view=rev
Log:
[Win32k]
- Get FlashWindow working, pass all but 2 tests. Add more win32k atoms.
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c
trunk/reactos/subsystems/win32/win32k/ntuser/painting.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c [iso-8859-1] Sat Dec 10 06:00:38
2011
@@ -41,6 +41,11 @@
/* System Context Help Id Atom */
gpsi->atomContextHelpIdProp = IntAddGlobalAtom(L"SysCH", TRUE);
+ gpsi->atomIconSmProp = IntAddGlobalAtom(L"SysICS", TRUE);
+ gpsi->atomIconProp = IntAddGlobalAtom(L"SysIC", TRUE);
+
+ gpsi->atomFrostedWindowProp = IntAddGlobalAtom(L"SysFrostedWindow",
TRUE);
+
AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE);
AtomLayer = IntAddGlobalAtom(L"SysLayer", TRUE);
AtomFlashWndState = IntAddGlobalAtom(L"FlashWState", TRUE);
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/painting.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/painting.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/painting.c [iso-8859-1] Sat Dec 10
06:00:38 2011
@@ -776,6 +776,31 @@
return TRUE;
}
+BOOL
+FASTCALL
+IntFlashWindowEx(PWND pWnd, PFLASHWINFO pfwi)
+{
+ PPROPERTY pprop;
+ DWORD FlashState;
+ BOOL Ret = FALSE;
+
+ pprop = IntGetProp(pWnd, AtomFlashWndState);
+ if (!pprop)
+ {
+ FlashState = pfwi->dwFlags;
+ IntSetProp(pWnd, AtomFlashWndState, (HANDLE) FlashState);
+ return TRUE;
+ }
+
+ FlashState = (DWORD)pprop->Data;
+ if ( pfwi->dwFlags == FLASHW_STOP )
+ {
+ IntRemoveProp(pWnd, AtomFlashWndState);
+ Ret = TRUE;
+ }
+ return Ret;
+}
+
/* PUBLIC FUNCTIONS ***********************************************************/
/*
@@ -951,7 +976,7 @@
BOOL APIENTRY
NtUserFlashWindowEx(IN PFLASHWINFO pfwi)
{
- //PWND pWnd;
+ PWND pWnd;
FLASHWINFO finfo = {0};
BOOL Ret = TRUE;
@@ -971,7 +996,7 @@
if (!Ret) goto Exit;
- if (!(/* pWnd = */ (PWND)UserGetObject(gHandleTable, finfo.hwnd, otWindow)) ||
+ if (!( pWnd = (PWND)UserGetObject(gHandleTable, finfo.hwnd, otWindow)) ||
finfo.cbSize != sizeof(FLASHWINFO) ||
finfo.dwFlags & ~(FLASHW_ALL|FLASHW_TIMER|FLASHW_TIMERNOFG) )
{
@@ -980,7 +1005,7 @@
goto Exit;
}
- //Ret = IntFlashWindowEx(pWnd, &finfo);
+ Ret = IntFlashWindowEx(pWnd, &finfo);
Exit:
UserLeave();