diff --git a/src/mathed/ChangeLog b/src/mathed/ChangeLog index 5c1436b83a..6fe71f8764 100644 --- a/src/mathed/ChangeLog +++ b/src/mathed/ChangeLog @@ -1,3 +1,7 @@ +2005-04-02 Martin Vermeer + + * math_data.C (x2pos): fix math cursor positioning bug + 2005-03-27 Georg Baum * math_amsarrayinset.[Ch] (validate): new, require amsmath diff --git a/src/mathed/math_data.C b/src/mathed/math_data.C index 913eeef60f..b26a119a08 100644 --- a/src/mathed/math_data.C +++ b/src/mathed/math_data.C @@ -380,8 +380,16 @@ MathArray::size_type MathArray::x2pos(int targetx, int glue) const currx += glue; currx += (*it)->width(); } + if (abs(lastx - targetx) < abs(currx - targetx) && it != begin()) --it; + // The below code guarantees that in this slice, the cursor will + // never be on the right edge of an inset after a mouse click. + if (it != begin()) + --it; + if (it < end() && (*it)->getChar()) + ++it; + return it - begin(); }