Hi,
[...] From a distance it looks like a conditionalRedraw() may be the needed call (I don't know well what expose means). I mean if this conditional redraw sees that nothing has changed in the specified area, it can simply return, otherwise redraw.
Yes, that's the idea of the new virtual method resizeDrawImpl(). Each widget can remember what has already been drawn and what might have changed because of resizes and then draw only the necessary parts. It depends on each widget how careful it is. Tables have the unfortunate property of changing their layout all over when new cells are added thereby requiring complete redraws.
We may track the colWidths vector. If it doesn't change, layout is kept.
The redrawing is left to the Table-code, which then can be optimized. Please test carefully and report any anomalies you find.
I haven't found any anomalies. :-)
Excellent. Then please commit this one. I will try to improve upon this.
Patch committed. Thanks for the explanations. I'll give it some testing when having some time. -- Cheers Jorge.-