rem: rect = WMGetScrollViewVisibleRect(table->scrollView);
add: rect = getVisibleRect(table);
context: void WMScrollTableViewRowToVisible(WMTableView *table, int row){    WMScroller *scroller;    WMRange range;    WMRect rect;    int newY, tmp;        rect = WMGetScrollViewVisibleRect(table->scrollView);    range = rowsInRect(table, rect);    scroller = WMGetScrollViewVerticalScroller(table->scrollView);    if (row < range.position) {	newY = row * table->rowHeight - rect.size.height / 2;    } else if (row >= range.position + range.count) {	newY = row * table->rowHeight - rect.size.height / 2;    } else {	return;    }    tmp = table->rows*table->rowHeight - rect.size.height;    newY = WMAX(0, WMIN(newY, tmp));    WMScrollViewScrollPoint(table->scrollView, rect.pos.x, newY);}