On Thu, Dec 07, 2006 at 09:47:56AM +0100, Abdelrazak Younes wrote: > Enrico Forestieri wrote: ... > >BTW, I noticed that LyX crashes if you press page down right after > >loading this document: > >http://bugzilla.lyx.org/attachment.cgi?id=1296&action=view > > I cannot access this link and 1296 doesn't seem to be related. But, FYI > I solved the same crash in 1.5. I thought it was 1.5 specific but > perhaps not, here it the patch (more comments about your patch below):
Thanks Abdel, that fixed it. Also thanks for having solved bug 2900 ;-) Jean-Marc, may I apply the attached patch? It is unrelated to bug 2900. -- Enrico
Index: src/text3.C =================================================================== --- src/text3.C (revision 16192) +++ src/text3.C (working copy) @@ -203,12 +203,19 @@ bool LyXText::cursorPrevious(LCursor & c bool updated = setCursorFromCoordinates(cur, x, 0); if (updated) cur.bv().update(); - updated |= cursorUp(cur); + + if (cur.inMathed()) + updated |= cur.up(); + else + updated |= cursorUp(cur); if (cpar == cur.pit() && cpos == cur.pos()) { // we have a row which is taller than the workarea. The // simplest solution is to move to the previous row instead. - updated |= cursorUp(cur); + if (cur.inMathed()) + updated |= cur.up(); + else + updated |= cursorUp(cur); } cur.bv().updateScrollbar(); @@ -226,12 +233,19 @@ bool LyXText::cursorNext(LCursor & cur) bool updated = setCursorFromCoordinates(cur, x, cur.bv().workHeight() - 1); if (updated) cur.bv().update(); - updated |= cursorDown(cur); + + if (cur.inMathed()) + updated |= cur.down(); + else + updated |= cursorDown(cur); if (cpar == cur.pit() && cpos == cur.pos()) { // we have a row which is taller than the workarea. The // simplest solution is to move to the next row instead. - updated |= cursorDown(cur); + if (cur.inMathed()) + updated |= cur.down(); + else + updated |= cursorDown(cur); } cur.bv().updateScrollbar();