Fix assertion when ChkTeX hit math.

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
This commit is contained in:
Juergen Spitzmueller 2014-03-22 12:09:18 +01:00 committed by Richard Heck
parent 8e6d367f94
commit a70571258d
2 changed files with 5 additions and 2 deletions

View File

@ -62,6 +62,8 @@
#include "insets/InsetRef.h" #include "insets/InsetRef.h"
#include "insets/InsetText.h" #include "insets/InsetText.h"
#include "mathed/MathData.h"
#include "frontends/alert.h" #include "frontends/alert.h"
#include "frontends/Application.h" #include "frontends/Application.h"
#include "frontends/Delegates.h" #include "frontends/Delegates.h"
@ -2496,7 +2498,8 @@ void BufferView::putSelectionAt(DocIterator const & cur,
bool BufferView::selectIfEmpty(DocIterator & cur) bool BufferView::selectIfEmpty(DocIterator & cur)
{ {
if (!cur.paragraph().empty()) if ((cur.inTexted() && !cur.paragraph().empty())
|| cur.inMathed() && !cur.cell().empty())
return false; return false;
pit_type const beg_pit = cur.pit(); pit_type const beg_pit = cur.pit();

View File

@ -188,7 +188,7 @@ bool GuiErrorList::goTo(int item)
return false; return false;
} }
// if pos_end is 0, this means it is end-of-paragraph // 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 end = err.pos_end ? min(err.pos_end, s) : s;
pos_type const start = min(err.pos_start, end); pos_type const start = min(err.pos_start, end);
pos_type const range = end == start ? s - start : end - start; pos_type const range = end == start ? s - start : end - start;