mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +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 "Buffer.h"
|
||||||
#include "BufferParams.h"
|
#include "BufferParams.h"
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
|
#include "CoordCache.h"
|
||||||
#include "Cursor.h"
|
#include "Cursor.h"
|
||||||
#include "CutAndPaste.h"
|
#include "CutAndPaste.h"
|
||||||
#include "FuncRequest.h"
|
#include "FuncRequest.h"
|
||||||
@ -969,7 +970,14 @@ bool InsetMathGrid::idxUpDown(Cursor & cur, bool up) const
|
|||||||
LASSERT(cur.idx() > 0, return false);
|
LASSERT(cur.idx() > 0, return false);
|
||||||
--cur.idx();
|
--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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user