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:
parent
b1770396e5
commit
f754270e0a
|
|
@ -217,7 +217,7 @@ grtcairoFreeBackingStore(MagWindow *window)
|
||||||
XFreePixmap(grXdpy, pmap);
|
XFreePixmap(grXdpy, pmap);
|
||||||
window->w_backingStore = (ClientData)NULL;
|
window->w_backingStore = (ClientData)NULL;
|
||||||
|
|
||||||
tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2;
|
tcairodata = (TCairoData *)window->w_grdata2;
|
||||||
cairo_surface_destroy(tcairodata->backing_surface);
|
cairo_surface_destroy(tcairodata->backing_surface);
|
||||||
cairo_destroy(tcairodata->backing_context);
|
cairo_destroy(tcairodata->backing_context);
|
||||||
tcairodata->backing_surface = NULL;
|
tcairodata->backing_surface = NULL;
|
||||||
|
|
@ -263,7 +263,7 @@ grtcairoCreateBackingStore(MagWindow *w)
|
||||||
pmap = XCreatePixmap(grXdpy, wind, width, height, grDepth);
|
pmap = XCreatePixmap(grXdpy, wind, width, height, grDepth);
|
||||||
w->w_backingStore = (ClientData)pmap;
|
w->w_backingStore = (ClientData)pmap;
|
||||||
|
|
||||||
tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2;
|
tcairodata = (TCairoData *)w->w_grdata2;
|
||||||
|
|
||||||
if (tcairodata->backing_surface != NULL)
|
if (tcairodata->backing_surface != NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -283,7 +283,7 @@ grtcairoGetBackingStore(MagWindow *w, Rect *area)
|
||||||
unsigned int width, height, sheight;
|
unsigned int width, height, sheight;
|
||||||
int xbot, ybot;
|
int xbot, ybot;
|
||||||
Rect r;
|
Rect r;
|
||||||
TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2;
|
TCairoData *tcairodata = (TCairoData *)w->w_grdata2;
|
||||||
|
|
||||||
if (w->w_backingStore == (ClientData)0) return FALSE;
|
if (w->w_backingStore == (ClientData)0) return FALSE;
|
||||||
|
|
||||||
|
|
@ -316,7 +316,7 @@ grtcairoGetBackingStore(MagWindow *w, Rect *area)
|
||||||
bool
|
bool
|
||||||
grtcairoScrollBackingStore(MagWindow *w, Point *shift)
|
grtcairoScrollBackingStore(MagWindow *w, Point *shift)
|
||||||
{
|
{
|
||||||
TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2;
|
TCairoData *tcairodata = (TCairoData *)w->w_grdata2;
|
||||||
Pixmap pmap;
|
Pixmap pmap;
|
||||||
unsigned int width, height;
|
unsigned int width, height;
|
||||||
int xorigin, yorigin, xshift, yshift;
|
int xorigin, yorigin, xshift, yshift;
|
||||||
|
|
@ -381,7 +381,7 @@ grtcairoPutBackingStore(MagWindow *w, Rect *area)
|
||||||
{
|
{
|
||||||
unsigned int width, height, sheight;
|
unsigned int width, height, sheight;
|
||||||
int ybot, xbot;
|
int ybot, xbot;
|
||||||
TCairoData *tcairodata = (TCairoData *)tcairoCurrent.mw->w_grdata2;
|
TCairoData *tcairodata = (TCairoData *)w->w_grdata2;
|
||||||
|
|
||||||
if (w->w_backingStore == (ClientData)0) return;
|
if (w->w_backingStore == (ClientData)0) return;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue