summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miext/cw/cw.c2
-rw-r--r--miext/cw/cw_ops.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/miext/cw/cw.c b/miext/cw/cw.c
index 4f9b38aa6..5b45075d8 100644
--- a/miext/cw/cw.c
+++ b/miext/cw/cw.c
@@ -65,7 +65,7 @@ cwCopyClip(GCPtr pgcDst, GCPtr pgcSrc);
static void
cwDestroyClip(GCPtr pGC);
-static GCFuncs cwGCFuncs = {
+GCFuncs cwGCFuncs = {
cwValidateGC,
cwChangeGC,
cwCopyGC,
diff --git a/miext/cw/cw_ops.c b/miext/cw/cw_ops.c
index 198337cf8..f4d6e3478 100644
--- a/miext/cw/cw_ops.c
+++ b/miext/cw/cw_ops.c
@@ -37,14 +37,19 @@
&src_off_y)
#define PROLOGUE(pGC) do { \
+ pGC->funcs = pGCPrivate->wrapFuncs;\
pGC->ops = pGCPrivate->wrapOps;\
} while (0)
#define EPILOGUE(pGC) do { \
+ pGCPrivate->wrapFuncs = (pGC)->funcs; \
pGCPrivate->wrapOps = (pGC)->ops; \
+ (pGC)->funcs = &cwGCFuncs; \
(pGC)->ops = &cwGCOps; \
} while (0)
+extern GCFuncs cwGCFuncs;
+
/*
* GC ops -- wrap each GC operation with our own function
*/