backing drawable if the serial numbers differ. Fixes crash in XAA which occurred when the DDX bumped the serial number on the backing drawable and expected it to get re-validated, and we didn't because the wrapped drawable hadn't been bumped.
This commit is contained in:
parent
b90088321e
commit
53f74b6aa9
|
@ -28,6 +28,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "gcstruct.h"
|
#include "gcstruct.h"
|
||||||
|
#include "pixmapstr.h"
|
||||||
#include "cw.h"
|
#include "cw.h"
|
||||||
|
|
||||||
#define SETUP_BACKING_DST(_pDst, _pGC) \
|
#define SETUP_BACKING_DST(_pDst, _pGC) \
|
||||||
|
@ -43,6 +44,9 @@
|
||||||
&src_off_y)
|
&src_off_y)
|
||||||
|
|
||||||
#define PROLOGUE(pGC) do { \
|
#define PROLOGUE(pGC) do { \
|
||||||
|
if (pBackingGC->serialNumber != pBackingDst->serialNumber) { \
|
||||||
|
ValidateGC(pBackingDst, pBackingGC); \
|
||||||
|
} \
|
||||||
pGC->funcs = pGCPrivate->wrapFuncs;\
|
pGC->funcs = pGCPrivate->wrapFuncs;\
|
||||||
pGC->ops = pGCPrivate->wrapOps;\
|
pGC->ops = pGCPrivate->wrapOps;\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
Loading…
Reference in New Issue