#49465: xorg-server @1.17.2_0: XQuartz 2.7.7 on Snow Leopard, Mac OS X 10.6.8, produces defects ------------------------------+------------------------ Reporter: Peter_Dyballa@… | Owner: jeremyhu@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.4 Resolution: | Keywords: Port: xorg-server | ------------------------------+------------------------ Comment (by Peter_Dyballa@…): Replying to [comment:14 jeremyhu@…]:
You can apply a .diff to the end to get the raw patch:
https://github.com/XQuartz/xorg- server/commit/596efccbd9fa0a4b6c5ea64fc1f2e11a42c17e01.diff
For hunk 3 I need some help. The old code could have been: {{{ @@ -574,6 +589,18 @@ else { PixmapPtr pixmap; tile_x_off = drawable->x; tile_y_off = drawable->y; }}} which is now: {{{ else { PixmapPtr pixmap; fill = pWin->border; solid = pWin->borderIsPixel; /* servers without pixmaps draw their own borders */ if (!pScreen->GetWindowPixmap) return; pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); drawable = &pixmap->drawable; while (pWin->backgroundState == ParentRelative) pWin = pWin->parent; tile_x_off = pWin->drawable.x; tile_y_off = pWin->drawable.y; }}} Can the patch {{{ +#ifdef ROOTLESS + if(IsFramedWindow(pWin)) { + RootlessStartDrawing(pWin); + RootlessDamageRegion(pWin, prgn); + + if(!pWin->borderIsPixel && + pWin->backgroundState == ParentRelative) { + RootlessSetPixmapOfAncestors(pWin); + } + } +#endif + }}} be installed before the newly added code, i.e., after the else clause? Similarly for hunk 4. The old code could have been: {{{ @@ -582,6 +609,12 @@ return; pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); drawable = &pixmap->drawable; #ifdef COMPOSITE draw_x_off = pixmap->screen_x; draw_y_off = pixmap->screen_y; }}} which is now: {{{ return; pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); drawable = &pixmap->drawable; while (pWin->backgroundState == ParentRelative) pWin = pWin->parent; tile_x_off = pWin->drawable.x; tile_y_off = pWin->drawable.y; #ifdef COMPOSITE draw_x_off = pixmap->screen_x; draw_y_off = pixmap->screen_y; }}} I think the patch {{{ + +#ifdef XQUARTZ_CLIP_DEBUG + ErrorF(" Draw: %d %d %d %d\n", + drawable->x, drawable->y, drawable->width, drawable->height); +#endif + }}} can safely be installed before the newly added code, i.e., the while loop, it's just for debugging means. -- Ticket URL: <https://trac.macports.org/ticket/49465#comment:15> MacPorts <https://www.macports.org/> Ports system for OS X