rem: Drawable d = W_VIEW_DRAWABLE(table->tableView);
add: Drawable d = WMGetPixmapXID(table->viewBuffer);
context: static void drawGrid(WMTableView *table, WMRect rect){    WMScreen *scr = WMWidgetScreen(table);    Display *dpy = WMScreenDisplay(scr);    int i;    int y1, y2;    int x1, x2;    int xx;    Drawable d = W_VIEW_DRAWABLE(table->tableView);    GC gc = table->gridGC;    #if 0    char dashl[1] = {1};        XSetDashes(dpy, gc, 0, dashl, 1);        y1 = (rect.pos.y/table->rowHeight - 1)*table->rowHeight;    y2 = y1 + (rect.size.height/table->rowHeight+2)*table->rowHeight;#endif    y1 = 0;    y2 = W_VIEW_HEIGHT(table->tableView);    xx = 0;    for (i = 0; i < WMGetArrayItemCount(table->columns); i++) {	WMTableColumn *column;		if (xx >= rect.pos.x && xx <= rect.pos.x+rect.size.width) {	    XDrawLine(dpy, d, gc, xx, y1, xx, y2);	}	column = WMGetFromArray(table->columns, i);	xx += column->width;    }    XDrawLine(dpy, d, gc, xx, y1, xx, y2);            x1 = rect.pos.x;    x2 = WMIN(x1 + rect.size.width, xx);        if (x2 <= x1)	return;#if 0    XSetDashes(dpy, gc, (rect.pos.x&1), dashl, 1);#endif        y1 = rect.pos.y - rect.pos.y%table->rowHeight;    y2 = y1 + rect.size.height + table->rowHeight;        for (i = y1; i <= y2; i += table->rowHeight) {	XDrawLine(dpy, d, gc, x1, i, x2, i);    }    }