This is the old patch in: http://bugzilla.lyx.org/show_bug.cgi?id=2251
I applied it to trunk, and I would like to apply it to 1.4 too. Please test. JMarc
Index: src/mathed/math_hullinset.C =================================================================== --- src/mathed/math_hullinset.C (Revision 13253) +++ src/mathed/math_hullinset.C (Arbeitskopie) @@ -269,7 +269,7 @@ // insert a one pixel gap in front of the formula dim.wid += 1; if (display()) - dim.des += 12; + dim.des += displayMargin(); dim_ = dim; return; } @@ -281,8 +281,8 @@ MathGridInset::metrics(mi, dim); if (display()) { - dim.asc += 12; - dim.des += 12; + dim.asc += displayMargin(); + dim.des += displayMargin(); } if (numberedType()) { Index: src/mathed/math_hullinset.h =================================================================== --- src/mathed/math_hullinset.h (Revision 13253) +++ src/mathed/math_hullinset.h (Arbeitskopie) @@ -119,6 +119,8 @@ /// void addPreview(lyx::graphics::PreviewLoader &) const; + /// + static int displayMargin() { return 12; } protected: MathHullInset(MathHullInset const &); Index: src/text2.C =================================================================== --- src/text2.C (Revision 13253) +++ src/text2.C (Arbeitskopie) @@ -51,6 +51,8 @@ #include "insets/insetenv.h" +#include "mathed/math_hullinset.h" + #include "support/textutils.h" #include <boost/current_function.hpp> @@ -1051,7 +1053,10 @@ if (!cur.selection()) { int const y = bv_funcs::getPos(cur, cur.boundary()).y_; LCursor old = cur; - editXY(cur, x, y - par.rows()[row].ascent() - 1); + // Go to middle of previous row. 16 found to work OK; + // 12 = top/bottom margin of display math + int const margin = 3 * MathHullInset::displayMargin() / 2; + editXY(cur, x, y - par.rows()[row].ascent() - margin); cur.clearSelection(); // This happens when you move out of an inset. @@ -1097,7 +1102,9 @@ if (!cur.selection()) { int const y = bv_funcs::getPos(cur, cur.boundary()).y_; LCursor old = cur; - editXY(cur, x, y + par.rows()[row].descent() + 1); + // To middle of next row + int const margin = 3 * MathHullInset::displayMargin() / 2; + editXY(cur, x, y + par.rows()[row].descent() + margin); cur.clearSelection(); // This happens when you move out of an inset.