Author: forenr
Date: Thu Mar 10 23:11:34 2011
New Revision: 37900
URL: http://www.lyx.org/trac/changeset/37900
Log:
When an error occurs inside an inset, the content rather than the inset
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.
Modified:
lyx-devel/trunk/src/Buffer.cpp
Modified: lyx-devel/trunk/src/Buffer.cpp
==============================================================================
--- lyx-devel/trunk/src/Buffer.cpp Thu Mar 10 21:15:34 2011 (r37899)
+++ lyx-devel/trunk/src/Buffer.cpp Thu Mar 10 23:11:34 2011 (r37900)
@@ -3930,6 +3930,12 @@
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));
}