TableListBox refreshComponentForCell issue when scrolled


#1

Hi Jules,

It seems there is an issue in the TabelListBox related to scrollign and updateVisibleArea
but it looks like the old component given to the refreshComponentForCell si not the right one.

I keep a cache of widgets used in the tree and only update those if necessary

Row &row = mRows[rowNumber];
Row::iterator it = row.find(columnId);
if(it == row.end() || it->second != existingComponentToUpdate || !existingComponentToUpdate)
{
  deleteAndZero(existingComponentToUpdate);
  existingComponentToUpdate = createComponentForCell(rowNumber,columnId);
  row[columnId] = existingComponentToUpdate; // update cache
}
return existingComponentToUpdate;

when doing this I got some what looks like repaint issue with item that are drawn instead of another one.
I use a version which date from the 16 november

Any idea ?


#2

Hmm… That doesn’t feel like a good way of doing it to me, I can’t exactly see a flaw, but I’m sure there’s a situation that’ll break it…

Personally, I’d always go for the safe approach of dynamic_casting the component to whatever class it’s supposed to be, and then telling it which row number (or whatever) it should represent.


#3

Will investigate.

Thanks,