mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
Patch to rootless code that should fix many crashes. Credit to Ken Thomases
at CodeWeavers for the patch. From his description: Fix a display bug with the X server. The Generic Rootless extension installs overrides for certain GC (graphics context) operations. Within these overrides, they temporarily uninstall themselves, perform their work, and then reinstall themselves. Except sometimes they would return early and wouldn't reinstall themselves when they should. Now they do in all cases. Fix a bug in RootlessCopyWindow where early returns could leave the screen's dispatch table entry for CopyWindow unwrapped. We think that this is another case (hopefully the last) of the rootless drawing bug.
This commit is contained in:
@@ -836,13 +836,13 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||
top = TopLevelParent(pWin);
|
||||
if (top == NULL) {
|
||||
RL_DEBUG_MSG("no parent\n");
|
||||
return;
|
||||
goto out;
|
||||
}
|
||||
|
||||
winRec = WINREC(top);
|
||||
if (winRec == NULL) {
|
||||
RL_DEBUG_MSG("not framed\n");
|
||||
return;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Move region to window local coords */
|
||||
@@ -865,6 +865,7 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||
RootlessDamageRegion(pWin, prgnSrc);
|
||||
}
|
||||
|
||||
out:
|
||||
REGION_UNINIT(pScreen, &rgnDst);
|
||||
fbValidateDrawable(&pWin->drawable);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user