]> git.lyx.org Git - features.git/commitdiff
When an error occurs inside an inset, the content rather than the inset
authorEnrico Forestieri <forenr@lyx.org>
Thu, 10 Mar 2011 22:11:34 +0000 (22:11 +0000)
committerEnrico Forestieri <forenr@lyx.org>
Thu, 10 Mar 2011 22:11:34 +0000 (22:11 +0000)
as a whole gets highlighted. Now, the error list carries information
about the starting id/pos and ending pos, but not about the ending id.
So, when computing the range to be highlighted as range = pos_end - pos_start,
if id_start != id_end, the result 1 means one inset and only the first
character in the inset would be highlighted. Thus, when id_start != id_end,
let pos_end = 0, such that the whole content will be highlighted.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37900 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp

index d2eff530f835197ca76ef1481d0c3e2f9177c98c..d11b057c4d408f3b73978a8b42f65ee3658de139 100644 (file)
@@ -3930,6 +3930,12 @@ void Buffer::bufferErrors(TeXErrors const & terr, ErrorList & errorList) const
                        found = p->texrow.getIdFromRow(errorRow, id_end, pos_end);
                } while (found && id_start == id_end && pos_start == pos_end);
 
+               if (id_start != id_end) {
+                       // Next registered position is outside the inset where
+                       // the error occurred, so signal end-of-paragraph
+                       pos_end = 0;
+               }
+
                errorList.push_back(ErrorItem(it->error_desc,
                        it->error_text, id_start, pos_start, pos_end, buf));
        }