mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Fix crash when putting a float around multiple display maths (bug #7974).
This also fixes other float-related bugs, such as this: * select two floats in two consecutive paragraphs and insert a new float around them => the master float's caption is put into the lower subfloat instead of below the subfloats. In the long term, doInsertInset needs a thorough cleanup. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40639 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
af8cec47e9
commit
b965edbb02
@ -1670,16 +1670,19 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
||||
case LFUN_FLOAT_INSERT:
|
||||
case LFUN_FLOAT_WIDE_INSERT:
|
||||
case LFUN_WRAP_INSERT: {
|
||||
// will some text be moved into the inset?
|
||||
bool content = cur.selection();
|
||||
// will some content be moved into the inset?
|
||||
bool const content = cur.selection();
|
||||
// does the content consist of multiple paragraphs?
|
||||
bool const singlepar = (cur.selBegin().pit() == cur.selEnd().pit());
|
||||
|
||||
doInsertInset(cur, this, cmd, true, true);
|
||||
cur.posForward();
|
||||
|
||||
// If some text is moved into the inset, doInsertInset
|
||||
// puts the cursor outside the inset. To insert the
|
||||
// caption we put it back into the inset.
|
||||
if (content)
|
||||
// If some single-par content is moved into the inset,
|
||||
// doInsertInset puts the cursor outside the inset.
|
||||
// To insert the caption we put it back into the inset.
|
||||
// FIXME cleanup doInsertInset to avoid such dances!
|
||||
if (content && singlepar)
|
||||
cur.backwardPos();
|
||||
|
||||
ParagraphList & pars = cur.text()->paragraphs();
|
||||
|
Loading…
Reference in New Issue
Block a user