diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:31 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:31 +0200 |
commit | 1c25e92b9ea5811d8ab9c2bfdc0dcb2e4d21bd0a (patch) | |
tree | 56b1d4196538a8abb7747e8455b59aa778d6b948 /nx-X11/programs/Xserver/hw/nxagent/GCOps.c | |
parent | 266b5554943baffafbf1d574f567283cc9792278 (diff) | |
download | nx-libs-1c25e92b9ea5811d8ab9c2bfdc0dcb2e4d21bd0a.tar.gz nx-libs-1c25e92b9ea5811d8ab9c2bfdc0dcb2e4d21bd0a.tar.bz2 nx-libs-1c25e92b9ea5811d8ab9c2bfdc0dcb2e4d21bd0a.zip |
Imported nxagent-3.2.0-10.tar.gznxagent/3.2.0-10
Summary: Imported nxagent-3.2.0-10.tar.gz
Keywords:
Imported nxagent-3.2.0-10.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/GCOps.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/GCOps.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c index 7a6432a8e..83aa04f11 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c +++ b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c @@ -451,6 +451,8 @@ FIXME: The popup could be synchronized with one CARD32 targetAttributes[2]; + Bool pClipRegionFree = True; + /* * As we want to copy only the synchronized * areas of the source drawable, we create @@ -503,6 +505,13 @@ FIXME: The popup could be synchronized with one nxagentChangeClip(targetGC, CT_REGION, pClipRegion, 0); + /* + * Next call to nxagentChangeClip() will destroy + * pClipRegion, so it has not to be freed. + */ + + pClipRegionFree = False; + #ifdef DEBUG fprintf(stderr, "nxagentDeferCopyArea: Going to execute a copy area with clip mask " "[%d,%d,%d,%d] and origin [%d,%d].\n", ((RegionPtr) targetGC -> clientClip) -> extents.x1, @@ -518,6 +527,11 @@ FIXME: The popup could be synchronized with one nxagentChangeClip(targetGC, CT_NONE, NullRegion, 0); + if (pClipRegionFree == True) + { + nxagentFreeRegion(pSrcDrawable, pClipRegion); + } + FreeScratchGC(targetGC); } else @@ -1184,7 +1198,9 @@ void nxagentPolySegment(DrawablePtr pDrawable, GCPtr pGC, (XSegment *) pSegments, nSegments); } + SET_GC_TRAP(); fbPolySegment(nxagentVirtualDrawable(pDrawable), pGC, nSegments, pSegments); + RESET_GC_TRAP(); return; } @@ -1193,7 +1209,9 @@ void nxagentPolySegment(DrawablePtr pDrawable, GCPtr pGC, XDrawSegments(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC), (XSegment *) pSegments, nSegments); + SET_GC_TRAP(); fbPolySegment(pDrawable, pGC, nSegments, pSegments); + RESET_GC_TRAP(); } } |