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.
This commit is contained in:
Tim Edwards 2017-09-15 20:47:44 -04:00
parent b1770396e5
commit f754270e0a
1 changed files with 5 additions and 5 deletions

View File

@ -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;