if (sl == cur.top()) {
cmd = FuncRequest(LFUN_FINISHED_RIGHT);
cur.undispatched();
- resetPos(cur);
}
break;
if (sl == cur.top()) {
cmd = FuncRequest(LFUN_FINISHED_LEFT);
cur.undispatched();
- resetPos(cur);
}
break;
cur.idx() = tabular.getCellBelow(cur.idx());
cur.pit() = 0;
cur.pos() = 0;
- resetPos(cur);
}
if (sl == cur.top()) {
cmd = FuncRequest(LFUN_FINISHED_DOWN);
cur.undispatched();
- resetPos(cur);
}
break;
cur.idx() = tabular.getCellAbove(cur.idx());
cur.pit() = cur.lastpit();
cur.pos() = cur.lastpos();
- resetPos(cur);
}
if (sl == cur.top()) {
cmd = FuncRequest(LFUN_FINISHED_UP);
cur.undispatched();
- resetPos(cur);
}
break;
// }
// cur.par() = 0;
// cur.pos() = 0;
-// resetPos(cur);
// break;
// }
//
// }
// cur.par() = cur.lastpar();
// cur.pos() = cur.lastpos();
-// resetPos(cur);
// break;
// }
default:
// we try to handle this event in the insets dispatch function.
cell(cur.idx())->dispatch(cur, cmd);
- resetPos(cur);
break;
}
+ resetPos(cur);
InsetTabularMailer(*this).updateDialog(&cur.bv());
}
// update our idea of where we are
setPosCache(pi, x, y);
- //BufferView * bv = pi.base.bv;
- ////bv->hideCursor();
-
text_.draw(pi, x + border_, y);
if (drawFrame_) {
int const w = text_.width() + 2 * border_;
int const a = text_.ascent() + border_;
int const h = a + text_.descent() + border_;
- pi.pain.rectangle(x, y - a, w, h, frameColor());
+ int const ww = pi.base.bv->workWidth();
+ if (w > ww - 40) {
+ pi.pain.line(0, y - a, ww, y - a, frameColor());
+ pi.pain.line(0, y - a + h, ww, y - a + h, frameColor());
+ } else {
+ pi.pain.rectangle(x, y - a, w, h, frameColor());
+ }
}
}
// always will have the whole rest of the width of the cell.
if (column > (columns_ - 2))
return;
- for(row_type row = 0; row < rows_; ++row) {
+ for (row_type row = 0; row < rows_; ++row) {
int mc = cell_info[row][column].multicolumn;
int nmc = cell_info[row][column+1].multicolumn;
// we only have to update multicolumns which do not have this