aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@gmail.com>2015-08-03 09:48:59 +0200
committerCarlo Landmeter <clandmeter@gmail.com>2015-08-03 09:48:59 +0200
commit5ad30e383cdbc87caed57dbe81f298cb3164012e (patch)
treea4f098462ab9523d03f5f3a63742a2f065c96e52 /testing
parent40b86bef7c1cee1bf547712c1de1ec284733941f (diff)
downloadaports-5ad30e383cdbc87caed57dbe81f298cb3164012e.tar.bz2
aports-5ad30e383cdbc87caed57dbe81f298cb3164012e.tar.xz
testing/xrdp-git: add missing patch
Diffstat (limited to 'testing')
-rw-r--r--testing/xrdp-git/cd077979ebeb81a6e85a9ba7f9c463beda1606ba.patch100
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 */