window parent handle -> pointer adaptions Modified: trunk/reactos/subsys/win32k/include/userfuncs.h Modified: trunk/reactos/subsys/win32k/ntuser/painting.c Modified: trunk/reactos/subsys/win32k/ntuser/vis.c Modified: trunk/reactos/subsys/win32k/ntuser/windc.c _____
Modified: trunk/reactos/subsys/win32k/include/userfuncs.h --- trunk/reactos/subsys/win32k/include/userfuncs.h 2005-09-06 14:09:22 UTC (rev 17697) +++ trunk/reactos/subsys/win32k/include/userfuncs.h 2005-09-06 14:19:03 UTC (rev 17698) @@ -1,7 +1,12 @@
#ifndef _WIN32K_USERFUNCS_H #define _WIN32K_USERFUNCS_H
+//currently unused +#define ASSERT_REFS(obj)
+#define UserReferenceWindowObjectCo(o) IntReferenceWindowObject(o) +#define UserDereferenceWindowObjectCo(o) IntReleaseWindowObject(o) + extern PUSER_HANDLE_TABLE gHandleTable;
_____
Modified: trunk/reactos/subsys/win32k/ntuser/painting.c --- trunk/reactos/subsys/win32k/ntuser/painting.c 2005-09-06 14:09:22 UTC (rev 17697) +++ trunk/reactos/subsys/win32k/ntuser/painting.c 2005-09-06 14:19:03 UTC (rev 17698) @@ -405,20 +405,18 @@
BOOL FASTCALL IntIsWindowDrawable(PWINDOW_OBJECT Window) { - PWINDOW_OBJECT Old, Wnd = Window; + PWINDOW_OBJECT Wnd = Window;
- IntReferenceWindowObject(Wnd); do { if (!(Wnd->Style & WS_VISIBLE) || ((Wnd->Style & WS_MINIMIZE) && (Wnd != Window))) { - IntReleaseWindowObject(Wnd); return FALSE; } - Old = Wnd; - Wnd = IntGetParentObject(Wnd); - IntReleaseWindowObject(Old); + + Wnd = Wnd->Parent; + } while(Wnd);
return TRUE; _____
Modified: trunk/reactos/subsys/win32k/ntuser/vis.c --- trunk/reactos/subsys/win32k/ntuser/vis.c 2005-09-06 14:09:22 UTC (rev 17697) +++ trunk/reactos/subsys/win32k/ntuser/vis.c 2005-09-06 14:19:03 UTC (rev 17698) @@ -77,7 +77,7 @@
*/
PreviousWindow = Window; - CurrentWindow = IntGetParentObject(Window); + CurrentWindow = Window->Parent; while (CurrentWindow) { if (!(CurrentWindow->Style & WS_VISIBLE)) @@ -113,8 +113,7 @@ }
PreviousWindow = CurrentWindow; - CurrentWindow = IntGetParentObject(CurrentWindow); - IntReleaseWindowObject(PreviousWindow); + CurrentWindow = CurrentWindow->Parent; }
if (ClipChildren) @@ -159,19 +158,23 @@ HRGN Temp; PWINDOW_OBJECT Parent;
+ ASSERT_REFS(Window); + Temp = NtGdiCreateRectRgn(0, 0, 0, 0); NtGdiCombineRgn(Temp, NewlyExposed, NULL, RGN_COPY);
- Parent = IntGetParentObject(Window); + Parent = Window->Parent; if(Parent) { NtGdiOffsetRgn(Temp, Window->WindowRect.left - Parent->ClientRect.left, Window->WindowRect.top - Parent->ClientRect.top); - co_UserRedrawWindow(Parent, NULL, Temp, + + UserReferenceWindowObjectCo(Parent); + co_UserRedrawWindow(Parent, NULL, Temp, RDW_FRAME | RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); - IntReleaseWindowObject(Parent); + UserDereferenceWindowObjectCo(Parent); } NtGdiDeleteObject(Temp); } _____
Modified: trunk/reactos/subsys/win32k/ntuser/windc.c --- trunk/reactos/subsys/win32k/ntuser/windc.c 2005-09-06 14:09:22 UTC (rev 17697) +++ trunk/reactos/subsys/win32k/ntuser/windc.c 2005-09-06 14:19:03 UTC (rev 17698) @@ -278,7 +278,7 @@
{ PWINDOW_OBJECT Parent;
- Parent = IntGetParentObject(Window); + Parent = Window->Parent; if(!Parent) { hRgnVisible = NULL; @@ -430,7 +430,7 @@ Flags = (Flags & ~DCX_CLIPCHILDREN) | DCX_CACHE; }
- Parent = (Window ? IntGetParentObject(Window) : NULL); + Parent = (Window ? Window->Parent : NULL);
if (NULL == Window || !(Window->Style & WS_CHILD) || NULL == Parent) { @@ -450,9 +450,6 @@ } }
- if(Parent) - IntReleaseWindowObject(Parent); - DcxFlags = Flags & DCX_CACHECOMPAREMASK;
if (Flags & DCX_CACHE)