commit e1261817d29c4afbc36ce177cbea3114d8648ae6
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Wed Jan 6 18:49:41 2021 +0100
fix Row::findElement when there is a Virtual element
---
src/Row.cpp | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/Row.cpp b/src/Row.cpp
index 483094a..16ae9ae 100644
--- a/src/Row.cpp
+++ b/src/Row.cpp
@@ -626,15 +626,17 @@ Row::findElement(pos_type const pos, bool const boundary,
double & x) const
const_iterator cit = begin();
for ( ; cit != end() ; ++cit) {
- /** Look whether the cursor is inside the element's
- * span. Note that it is necessary to take the
- * boundary into account, and to accept virtual
- * elements, which have pos == endpos.
+ /** Look whether the cursor is inside the element's span. Note
+ * that it is necessary to take the boundary into account, and
+ * to accept virtual elements, in which case the position
+ * will be before the virtual element.
*/
- if (pos + boundary_corr >= cit->pos
- && (pos + boundary_corr < cit->endpos || cit->isVirtual()))
{
- x += cit->pos2x(pos);
- break;
+ if (cit->isVirtual() && pos + boundary_corr == cit->pos)
+ break;
+ else if (pos + boundary_corr >= cit->pos
+ && pos + boundary_corr < cit->endpos) {
+ x += cit->pos2x(pos);
+ break;
}
x += cit->full_width();
}
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs