diff options
author | Carlo Landmeter <clandmeter@gmail.com> | 2015-08-03 09:48:59 +0200 |
---|---|---|
committer | Carlo Landmeter <clandmeter@gmail.com> | 2015-08-03 09:48:59 +0200 |
commit | 5ad30e383cdbc87caed57dbe81f298cb3164012e (patch) | |
tree | a4f098462ab9523d03f5f3a63742a2f065c96e52 /testing | |
parent | 40b86bef7c1cee1bf547712c1de1ec284733941f (diff) | |
download | aports-5ad30e383cdbc87caed57dbe81f298cb3164012e.tar.bz2 aports-5ad30e383cdbc87caed57dbe81f298cb3164012e.tar.xz |
testing/xrdp-git: add missing patch
Diffstat (limited to 'testing')
-rw-r--r-- | testing/xrdp-git/cd077979ebeb81a6e85a9ba7f9c463beda1606ba.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/testing/xrdp-git/cd077979ebeb81a6e85a9ba7f9c463beda1606ba.patch b/testing/xrdp-git/cd077979ebeb81a6e85a9ba7f9c463beda1606ba.patch new file mode 100644 index 0000000000..c50e7b1184 --- /dev/null +++ b/testing/xrdp-git/cd077979ebeb81a6e85a9ba7f9c463beda1606ba.patch @@ -0,0 +1,100 @@ +From cd077979ebeb81a6e85a9ba7f9c463beda1606ba Mon Sep 17 00:00:00 2001 +From: Jay Sorg <jay.sorg@gmail.com> +Date: Thu, 30 Jul 2015 14:09:00 -0700 +Subject: [PATCH] fix for clientClipType removed in newer xorg versions + +--- + module/rdpDraw.c | 64 +++++++++++++++++++++++++++++++------------------------- + 1 file changed, 35 insertions(+), 29 deletions(-) + +diff --git a/module/rdpDraw.c b/module/rdpDraw.c +index 5772923..605c511 100644 +--- a/xorgxrdp/module/rdpDraw.c ++++ b/xorgxrdp/module/rdpDraw.c +@@ -50,6 +50,21 @@ misc draw calls + #define LLOGLN(_level, _args) \ + do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) + ++#if !defined(XORG_VERSION_CURRENT) ++#warning XORG_VERSION_CURRENT not defined ++#endif ++ ++/******************************************************************************/ ++static int ++is_clientClip_region(GCPtr gc) ++{ ++#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 16, 99, 901, 0) ++ return gc->clientClipType == CT_REGION; ++#else ++ return gc->clientClip != NULL; ++#endif ++} ++ + /******************************************************************************/ + /* return 0, draw nothing */ + /* return 1, draw with no clip */ +@@ -66,19 +81,15 @@ rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC) + + if (pDrawable->type == DRAWABLE_PIXMAP) + { +- switch (pGC->clientClipType) ++ if (is_clientClip_region(pGC)) + { +- case CT_NONE: +- rv = 1; +- break; +- case CT_REGION: +- rv = 2; +- rdpRegionCopy(pRegion, pGC->clientClip); +- break; +- default: +- LLOGLN(0, ("rdpDrawGetClip: unimp clip type %d", +- pGC->clientClipType)); +- break; ++ miComputeCompositeClip(pGC, pDrawable); ++ RegionCopy(pRegion, pGC->pCompositeClip); ++ rv = 2; ++ } ++ else ++ { ++ rv = 1; + } + + if (rv == 2) /* check if the clip is the entire pixmap */ +@@ -111,24 +122,19 @@ rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC) + + if (rdpRegionNotEmpty(temp)) + { +- switch (pGC->clientClipType) ++ if (is_clientClip_region(pGC)) ++ { ++ rdpRegionCopy(pRegion, pGC->clientClip); ++ rdpRegionTranslate(pRegion, ++ pDrawable->x + pGC->clipOrg.x, ++ pDrawable->y + pGC->clipOrg.y); ++ rdpRegionIntersect(pRegion, pRegion, temp); ++ rv = 2; ++ } ++ else + { +- case CT_NONE: +- rv = 2; +- rdpRegionCopy(pRegion, temp); +- break; +- case CT_REGION: +- rv = 2; +- rdpRegionCopy(pRegion, pGC->clientClip); +- rdpRegionTranslate(pRegion, +- pDrawable->x + pGC->clipOrg.x, +- pDrawable->y + pGC->clipOrg.y); +- rdpRegionIntersect(pRegion, pRegion, temp); +- break; +- default: +- LLOGLN(0, ("rdpDrawGetClip: unimp clip type %d", +- pGC->clientClipType)); +- break; ++ rdpRegionCopy(pRegion, temp); ++ rv = 2; + } + + if (rv == 2) /* check if the clip is the entire screen */ |