Richard Heck <rgh...@comcast.net> wrote:
> Same crash with a footnote there. So it looks
> as if for some reason insets inside cells are not
> getting their macro context set properly.

which is done in lines 3453-3473 of insettabular.cpp:


if (tabular.getAlignment(cell) == LYX_ALIGN_DECIMAL) {
        // make a copy which we will split in 2
        InsetTableCell head = InsetTableCell(*tabular.cellInset(cell).get());
        head.getText(0)->setMacrocontextPosition(
                tabular.cellInset(cell)->getText(0)->macrocontextPosition());
        head.setBuffer(tabular.buffer());
        // split in 2 and calculate width of each part
        bool hassep = false;
        InsetTableCell tail =
                splitCell(head, tabular.column_info[c].decimal_point, hassep);
        tail.getText(0)->setMacrocontextPosition(
                head.getText(0)->macrocontextPosition());
        tail.setBuffer(head.buffer());
        Dimension dim1;
        head.metrics(m, dim1);
        decimal_hoffset = dim1.width();
        if (hassep) {
                tail.metrics(m, dim1);
                decimal_width = dim1.width();
        }
}

Reply via email to