mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
Avoid crash with cursor down in math
This can happen when the inset that contains the cursor is outside of the screen. THis is only a workaround. The real solution would be a processUpdateFlags(FitCursor) call, but the code is not ready for that yet. Fixes bug #11296.
This commit is contained in:
parent
328ff9df3a
commit
17576fb83b
@ -22,6 +22,7 @@
|
||||
#include "Buffer.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "CoordCache.h"
|
||||
#include "Cursor.h"
|
||||
#include "CutAndPaste.h"
|
||||
#include "FuncRequest.h"
|
||||
@ -969,7 +970,14 @@ bool InsetMathGrid::idxUpDown(Cursor & cur, bool up) const
|
||||
LASSERT(cur.idx() > 0, return false);
|
||||
--cur.idx();
|
||||
}
|
||||
cur.pos() = cur.cell().x2pos(&cur.bv(), cur.x_target() - cur.cell().xo(cur.bv()));
|
||||
// FIXME: this is only a workaround to avoid a crash if the inset
|
||||
// in not in coord cache. The best would be to force a FitCursor
|
||||
// operation.
|
||||
CoordCache::Arrays const & arraysCache = cur.bv().coordCache().arrays();
|
||||
if (arraysCache.has(&cur.cell()))
|
||||
cur.pos() = cur.cell().x2pos(&cur.bv(), cur.x_target() - cur.cell().xo(cur.bv()));
|
||||
else
|
||||
cur.pos() = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user