aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Shneyder <oleksandr.shneyder@obviously-nice.de>2015-02-10 19:29:53 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-10 19:40:56 +0100
commitdb870556433fd737640f7038e0583242724e2d52 (patch)
tree7c985876b610fc06bf814a07d2a3ea9cc13b178c
parent4f5dc807a7a421aa0c5f52b84cd33ff41505de38 (diff)
downloadnx-libs-db870556433fd737640f7038e0583242724e2d52.tar.gz
nx-libs-db870556433fd737640f7038e0583242724e2d52.tar.bz2
nx-libs-db870556433fd737640f7038e0583242724e2d52.zip
Fix repainting of SolidFill pictures with libcairo > 1.12.x (204_nxagent_repaint-solidpict.full.patch).
-rw-r--r--debian/patches/204_nxagent_repaint-solidpict.full.patch53
-rw-r--r--debian/patches/series1
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Render.c16
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c4
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h1
5 files changed, 16 insertions, 59 deletions
diff --git a/debian/patches/204_nxagent_repaint-solidpict.full.patch b/debian/patches/204_nxagent_repaint-solidpict.full.patch
deleted file mode 100644
index 139a46ad3..000000000
--- a/debian/patches/204_nxagent_repaint-solidpict.full.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Description: Fix repainting of SolidFill pictures with libcairo > 1.12.x
-Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de>
-diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c
---- a/nx-X11/programs/Xserver/hw/nxagent/Render.c 2012-05-16 18:05:07.000000000 +0200
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c 2012-09-20 20:53:37.893459269 +0200
-@@ -2689,11 +2689,17 @@ void nxagentReconnectPicture(pointer p0,
- #endif
- }
-
-- if (!pForm)
-+ if (!pForm && pPicture->pSourcePict)
- {
-- *pBool = False;
--
-- return;
-+ /*possible we need to add support for other picture types, for example gradients...*/
-+ switch(pPicture->pSourcePict->type)
-+ {
-+ case SourcePictTypeSolidFill:
-+ nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay,
-+ (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor);
-+ break;
-+ }
-+ return;
- }
-
- #ifdef TEST
-diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c 2010-11-11 21:18:00.000000000 +0100
-+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c 2012-09-20 20:54:50.209817849 +0200
-@@ -1137,6 +1137,10 @@ CreateSolidPicture (Picture pid, xRender
- }
- pPicture->pSourcePict->type = SourcePictTypeSolidFill;
- pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color);
-+ pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha;
-+ pPicture->pSourcePict->solidFill.fullColor.red=color->red;
-+ pPicture->pSourcePict->solidFill.fullColor.green=color->green;
-+ pPicture->pSourcePict->solidFill.fullColor.blue=color->blue;
- return pPicture;
- }
-
-diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h 2010-10-22 16:04:24.000000000 +0200
-+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h 2012-09-20 20:55:31.106020653 +0200
-@@ -95,6 +95,7 @@ typedef struct _PictTransform {
- typedef struct _PictSolidFill {
- unsigned int type;
- CARD32 color;
-+ xRenderColor fullColor;
- } PictSolidFill, *PictSolidFillPtr;
-
- typedef struct _PictGradientStop {
-
diff --git a/debian/patches/series b/debian/patches/series
index 424c3e990..82d5eb9aa 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-204_nxagent_repaint-solidpict.full.patch
205_nxagent_refresh-adsl.full.patch
206_nxagent_clipboard-as-nxoption.full.patch
207_nxagent_fix-xfixes-selection.full.patch
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c
index 29bffaa35..41a1ec02e 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c
@@ -2689,11 +2689,17 @@ void nxagentReconnectPicture(pointer p0, XID x1, void *p2)
#endif
}
- if (!pForm)
- {
- *pBool = False;
-
- return;
+ if (!pForm && pPicture->pSourcePict)
+ {
+ /*possible we need to add support for other picture types, for example gradients...*/
+ switch(pPicture->pSourcePict->type)
+ {
+ case SourcePictTypeSolidFill:
+ nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay,
+ (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor);
+ break;
+ }
+ return;
}
#ifdef TEST
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
index d9054b4b6..4b342ebcf 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
@@ -1137,6 +1137,10 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error)
}
pPicture->pSourcePict->type = SourcePictTypeSolidFill;
pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color);
+ pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha;
+ pPicture->pSourcePict->solidFill.fullColor.red=color->red;
+ pPicture->pSourcePict->solidFill.fullColor.green=color->green;
+ pPicture->pSourcePict->solidFill.fullColor.blue=color->blue;
return pPicture;
}
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
index 0d1a8e1d8..b2679257c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
@@ -95,6 +95,7 @@ typedef struct _PictTransform {
typedef struct _PictSolidFill {
unsigned int type;
CARD32 color;
+ xRenderColor fullColor;
} PictSolidFill, *PictSolidFillPtr;
typedef struct _PictGradientStop {