From a5df789caef810d065246571f358470a1be07f43 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Tue, 28 Nov 2006 17:24:44 +0000 Subject: [PATCH] * LyXText::cursorNext(): Fix crash with PageDown when the next paragraph is a math inset bigger than the screen. * LyXText::cursorPrevious(): Implement the same check for safety reason. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16092 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/text3.C | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/text3.C b/src/text3.C index 96ef5b1ec3..96b6bfbeaf 100644 --- a/src/text3.C +++ b/src/text3.C @@ -207,12 +207,18 @@ void LyXText::cursorPrevious(LCursor & cur) // FIXME: there would maybe a need for this 'updated' boolean in the future... bool updated = setCursorFromCoordinates(cur, x, 0); - 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); } finishUndo(); @@ -228,12 +234,18 @@ void LyXText::cursorNext(LCursor & cur) int x = cur.x_target(); // FIXME: there would maybe a need for this 'updated' boolean in the future... bool updated = setCursorFromCoordinates(cur, x, cur.bv().workHeight() - 1); - 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); } finishUndo();