}
-void InsetMathHull::glueall()
+void InsetMathHull::glueall(HullType type)
{
MathData ar;
for (idx_type i = 0; i < nargs(); ++i)
ar.append(cell(i));
+ InsetLabel * label = 0;
+ if (type == hullEquation) {
+ // preserve the label
+ label = label_[0];
+ label_[0] = 0;
+ }
*this = InsetMathHull(buffer_, hullSimple);
+ if (label)
+ label_[0] = label;
cell(0) = ar;
setDefaults();
}
numbered(0, false);
} else {
setType(hullEquation);
- numbered(0, false);
mutate(newtype);
}
}
else if (type_ == hullEqnArray) {
if (newtype < type_) {
- // set correct (no)numbering
- nonum_[0] = true;
- for (row_type row = 0; row < nrows(); ++row) {
- if (!nonum_[row]) {
- nonum_[0] = false;
- break;
- }
- }
-
// set first non-empty label
for (row_type row = 0; row < nrows(); ++row) {
if (label_[row]) {
break;
}
}
-
- glueall();
+ glueall(newtype);
mutate(newtype);
} else { // align & Co.
changeCols(2);
///
void doExtern(Cursor & cur, FuncRequest & func);
///
- void glueall();
+ void glueall(HullType type);
/*!
* split every row at the first relation operator.
* The number of columns must be 1. One column is added.