I have reduced this to a minimal case: - place a mathinset on a row - place a collapsable inset on the next row - make sure it is _collapsed_ - mouse the cursor into the math inset, and press <down>.
Notes: * There may be several lines of text in-between mathinset and collapsable inset -- as long as they are _simultaneously visible_. * Arrow up works as well (i.e., causes the crash) as arrow down (this is apparently because of a call to bv_funcs::getPos, which implies a call to coordOffset, needed to find the proper x coordinate on the new row). What happens is that in bufferview_funcs.C (coordOffset method), we have 166 sl.inset().cursorPos(sl, boundary && ((i+1) == dit.depth ()), xx, yy); which calls in insetcollapsable.C: 204 void InsetCollapsable::cursorPos 205 (CursorSlice const & sl, bool boundary, int & x, int & y) const 206 { 207 BOOST_ASSERT(status() != Collapsed); Question: why does this _normally_ not trigger an assert, even if the inset is closed? And why does it when coming directly from a mathinset? Note that this assert happens _always_ when leaving a math inset, when a collapsed collapsable inset is simultaneously visible... i.e., rather often :-( - Martin
pgpCS4BnRV0ph.pgp
Description: PGP signature