+ delete [] m_rects;
+
+ m_rects = 0;
+ m_numRects = 0;
+
+ if (region.IsEmpty()) return;
+
+ Region r = (Region) region.GetX11Region();
+ if (r)
+ {
+#if wxUSE_NANOX
+ GR_RECT rect;
+ GrGetRegionBox(r, & rect);
+ m_numRects = 1;
+ m_rects = new wxRect[1];
+ m_rects[0].x = rect.x;
+ m_rects[0].y = rect.y;
+ m_rects[0].width = rect.width;
+ m_rects[0].height = rect.height;
+#else
+ m_numRects = r->numRects;
+ if (m_numRects)
+ {
+ m_rects = new wxRect[m_numRects];
+ for (size_t i=0; i < m_numRects; ++i)
+ {
+ _XBox &xr = r->rects[i];
+ wxRect &wr = m_rects[i];
+ wr.x = xr.x1;
+ wr.y = xr.y1;
+ wr.width = xr.x2-xr.x1;
+ wr.height = xr.y2-xr.y1;
+ }
+ }
+#endif
+ }