Change backspace behavior in align type equations

When hitting backspace in the first position of a cell in mathed,
if the cell is part of an array, the whole array is dissolved
and the sole cell content pasted in the containing environment.

But if the cell is part of an eqnarray or align math hull type, the
cursor is simply (and unexpectedly) taken out of the whole equation,
which is left unchanged.

This patch makes backspace equivalent to the cursor left key in those
cases, while leaving the behavior unchanged in all other ones.

Fixes #11678

(cherry picked from commit c79ec4114e)
This commit is contained in:
Enrico Forestieri 2021-01-31 00:51:15 +01:00
parent f05f70f05b
commit 706db1ff2e
2 changed files with 17 additions and 4 deletions

View File

@ -1347,9 +1347,20 @@ bool Cursor::backspace(bool const force)
// [|], can not delete from inside
return false;
} else {
if (inMathed())
pullArg();
else
if (inMathed()) {
switch (inset().asInsetMath()->getType()) {
case hullEqnArray:
case hullAlign:
case hullFlAlign: {
FuncRequest cmd(LFUN_CHAR_BACKWARD);
this->dispatch(cmd);
break;
}
default:
pullArg();
break;
}
} else
popBackward();
return true;
}

View File

@ -27,7 +27,9 @@ What's new
* USER INTERFACE
- Backspace at the very start of a cell part of eqnarray or align environments
does not move the cursor out of the whole equation anymore and is now
equivalent to hitting the left arrow key (bug 11678).
* DOCUMENTATION AND LOCALIZATION