From f754270e0a91859d568d3cd6f4f542219dbfd10b Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Fri, 15 Sep 2017 20:47:44 -0400 Subject: [PATCH] Corrected problem with passing the MagWindow to the backing store routine; failure to use the passed MagWindow value caused crashes when using more than one window in the Cairo graphics interface. --- graphics/grTCairo3.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/graphics/grTCairo3.c b/graphics/grTCairo3.c index 7b7bbab3..811f1678 100644 --- a/graphics/grTCairo3.c +++ b/graphics/grTCairo3.c @@ -217,7 +217,7 @@ grtcairoFreeBackingStore(MagWindow *window) XFreePixmap(grXdpy, pmap); window->w_backingStore = (ClientData)NULL; - tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2; + tcairodata = (TCairoData *)window->w_grdata2; cairo_surface_destroy(tcairodata->backing_surface); cairo_destroy(tcairodata->backing_context); tcairodata->backing_surface = NULL; @@ -263,7 +263,7 @@ grtcairoCreateBackingStore(MagWindow *w) pmap = XCreatePixmap(grXdpy, wind, width, height, grDepth); w->w_backingStore = (ClientData)pmap; - tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2; + tcairodata = (TCairoData *)w->w_grdata2; if (tcairodata->backing_surface != NULL) { @@ -283,7 +283,7 @@ grtcairoGetBackingStore(MagWindow *w, Rect *area) unsigned int width, height, sheight; int xbot, ybot; Rect r; - TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2; + TCairoData *tcairodata = (TCairoData *)w->w_grdata2; if (w->w_backingStore == (ClientData)0) return FALSE; @@ -316,7 +316,7 @@ grtcairoGetBackingStore(MagWindow *w, Rect *area) bool grtcairoScrollBackingStore(MagWindow *w, Point *shift) { - TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2; + TCairoData *tcairodata = (TCairoData *)w->w_grdata2; Pixmap pmap; unsigned int width, height; int xorigin, yorigin, xshift, yshift; @@ -381,7 +381,7 @@ grtcairoPutBackingStore(MagWindow *w, Rect *area) { unsigned int width, height, sheight; int ybot, xbot; - TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2; + TCairoData *tcairodata = (TCairoData *)w->w_grdata2; if (w->w_backingStore == (ClientData)0) return;