+ tabular->GetAdditionalHeight(cell);
+ }
+ } else if (need_update == CELL) {
+ nx = int(x);
+ for(i = 0; (cell < actcell) && (i < tabular->rows()); ++i) {
+ nx = int(x);
+ for(j = 0; (cell < actcell) && (j < tabular->columns()); ++j) {
+ if (tabular->IsPartOfMultiColumn(i, j))
+ continue;
+ nx += tabular->GetWidthOfColumn(cell);
+ ++cell;
+ }
+ baseline += tabular->GetDescentOfRow(i) +
+ tabular->GetAscentOfRow(i + 1) +
+ tabular->GetAdditionalHeight(cell);
+ }
+ if (the_locking_inset == tabular->GetCellInset(cell)) {
+ cx = nx + tabular->GetBeginningOfTextInCell(cell);
+ LyXText::text_status st = bv->text->status;
+ do {
+ bv->text->status = st;
+ if (need_update == CELL) {
+ // clear before the inset
+ pain.fillRectangle(
+ nx + 1,
+ baseline - tabular->GetAscentOfRow(i) + 1,
+ int(cx - nx - 1),
+ tabular->GetAscentOfRow(i) +
+ tabular->GetDescentOfRow(i) - 1);
+ // clear behind the inset
+ pain.fillRectangle(
+ int(cx + the_locking_inset->width(bv,font) + 1),
+ baseline - tabular->GetAscentOfRow(i) + 1,
+ tabular->GetWidthOfColumn(cell) -
+ tabular->GetBeginningOfTextInCell(cell) -
+ the_locking_inset->width(bv,font) - 1,
+ tabular->GetAscentOfRow(i) +
+ tabular->GetDescentOfRow(i) - 1);
+ }
+ tabular->GetCellInset(cell)->draw(bv,font,baseline, cx, false);
+ } while(bv->text->status == LyXText::CHANGED_IN_DRAW);