MathInset::idx_type idx = 0;
MathGridInset * p = mathcursor ? mathcursor->enclosingGrid(idx) : 0;
if (p) {
+ mathcursor->popToEnclosingGrid();
bv->lockedInsetStoreUndo(Undo::EDIT);
- char al = arg.size() ? arg[0] : 'c';
+ char align = arg.size() ? arg[0] : 'c';
switch (action) {
- case LFUN_MATH_HALIGN: p->halign(al, p->col(idx)); break;
- case LFUN_MATH_VALIGN: p->valign(al); break;
+ case LFUN_MATH_HALIGN: p->halign(align, p->col(idx)); break;
+ case LFUN_MATH_VALIGN: p->valign(align); break;
case LFUN_MATH_ROW_INSERT: p->addRow(p->row(idx)); break;
case LFUN_MATH_ROW_DELETE: p->delRow(p->row(idx)); break;
case LFUN_MATH_COLUMN_INSERT: p->addCol(p->col(idx)); break;
if (p) {
idx = Cursor_[i].idx_;
return p;
+ lyxerr << "found grid and idx: " << idx << "\n";
}
}
return 0;
}
+void MathCursor::popToEnclosingGrid()
+{
+ while (Cursor_.size() && !Cursor_.back().par_->asGridInset())
+ Cursor_.pop_back();
+}
+
+
void MathCursor::pullArg(bool goright)
{
dump("pullarg");
MathInset * par() const;
/// return the next enclosing grid inset and the cursor's index in it
MathGridInset * enclosingGrid(idx_type &) const;
+ /// return the next enclosing grid inset and the cursor's index in it
+ void popToEnclosingGrid();
///
InsetFormulaBase * formula();
/// current offset in the current cell