The problem here was that we used texted-only methods (via paragraph()), which triggered the assertion as soon as we were inside math.
Fixes: #8798
#include "insets/InsetRef.h"
#include "insets/InsetText.h"
+#include "mathed/MathData.h"
+
#include "frontends/alert.h"
#include "frontends/Application.h"
#include "frontends/Delegates.h"
bool BufferView::selectIfEmpty(DocIterator & cur)
{
- if (!cur.paragraph().empty())
+ if ((cur.inTexted() && !cur.paragraph().empty())
+ || cur.inMathed() && !cur.cell().empty())
return false;
pit_type const beg_pit = cur.pit();
return false;
}
// if pos_end is 0, this means it is end-of-paragraph
- pos_type const s = dit.paragraph().size();
+ pos_type const s = dit.lastpos();
pos_type const end = err.pos_end ? min(err.pos_end, s) : s;
pos_type const start = min(err.pos_start, end);
pos_type const range = end == start ? s - start : end - start;