From ad6cb32fa5c40e6ae7c873596d53c4fe76ece8ae Mon Sep 17 00:00:00 2001 From: Doug Lyons Date: Fri, 10 Oct 2025 15:59:13 -0500 Subject: [PATCH] [NTGDI] Fix 3D-text screensaver not moving in preview mode (#8402) Thanks, @I_Kill_Bugs for the fix. CORE-5601 --- win32ss/gdi/ntgdi/gdiobj.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/win32ss/gdi/ntgdi/gdiobj.c b/win32ss/gdi/ntgdi/gdiobj.c index 00c85f5f9dc..918c8dddfd7 100644 --- a/win32ss/gdi/ntgdi/gdiobj.c +++ b/win32ss/gdi/ntgdi/gdiobj.c @@ -479,6 +479,13 @@ ENTRY_ReferenceEntryByHandle(HGDIOBJ hobj, FLONG fl) { ULONG ulIndex, cNewRefs, cOldRefs; PENTRY pentry; + PTHREADINFO pti = PsGetCurrentThreadWin32Thread(); + + /* HACK: This may be a hack but it fixes CORE-5601. + * Allow a window that is moving or resizing to have access to all of its child + * windows dc's even if the dc belongs to another process i.e. 3D Screensaver */ + if (pti && pti->TIF_flags & TIF_MOVESIZETRACKING) + fl = GDIOBJFLAG_IGNOREPID; /* Get the handle index and check if its too big */ ulIndex = GDI_HANDLE_GET_INDEX(hobj);