mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
window parent handle -> pointer adaptions
svn path=/trunk/; revision=17698
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
#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;
|
||||
|
||||
|
||||
@@ -405,20 +405,18 @@ IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags)
|
||||
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;
|
||||
|
||||
@@ -77,7 +77,7 @@ VIS_ComputeVisibleRegion(
|
||||
*/
|
||||
|
||||
PreviousWindow = Window;
|
||||
CurrentWindow = IntGetParentObject(Window);
|
||||
CurrentWindow = Window->Parent;
|
||||
while (CurrentWindow)
|
||||
{
|
||||
if (!(CurrentWindow->Style & WS_VISIBLE))
|
||||
@@ -113,8 +113,7 @@ VIS_ComputeVisibleRegion(
|
||||
}
|
||||
|
||||
PreviousWindow = CurrentWindow;
|
||||
CurrentWindow = IntGetParentObject(CurrentWindow);
|
||||
IntReleaseWindowObject(PreviousWindow);
|
||||
CurrentWindow = CurrentWindow->Parent;
|
||||
}
|
||||
|
||||
if (ClipChildren)
|
||||
@@ -159,19 +158,23 @@ co_VIS_WindowLayoutChanged(
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -278,7 +278,7 @@ DceUpdateVisRgn(DCE *Dce, PWINDOW_OBJECT Window, ULONG Flags)
|
||||
{
|
||||
PWINDOW_OBJECT Parent;
|
||||
|
||||
Parent = IntGetParentObject(Window);
|
||||
Parent = Window->Parent;
|
||||
if(!Parent)
|
||||
{
|
||||
hRgnVisible = NULL;
|
||||
@@ -430,7 +430,7 @@ UserGetDCEx(PWINDOW_OBJECT Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
|
||||
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 @@ UserGetDCEx(PWINDOW_OBJECT Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
|
||||
}
|
||||
}
|
||||
|
||||
if(Parent)
|
||||
IntReleaseWindowObject(Parent);
|
||||
|
||||
DcxFlags = Flags & DCX_CACHECOMPAREMASK;
|
||||
|
||||
if (Flags & DCX_CACHE)
|
||||
|
||||
Reference in New Issue
Block a user