mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 10:58:52 +00:00
Kill macro mode when using LFUN_ESCAPE
Add a `cancel' boolean to macroModeClose() that just removes all trace of what has been entered instead of finalizing it. When entering a macro in mathed, let LFUN_ESCAPE invoke macroModeClose(true). The new semantics of LFUN_ESCAPE in mathed is thus to abort the input of a macro name. Fixes bug #9251.
This commit is contained in:
parent
ed7cdfff26
commit
9296344b9a
@ -1672,7 +1672,7 @@ void Cursor::setTargetX()
|
||||
}
|
||||
|
||||
|
||||
bool Cursor::macroModeClose()
|
||||
bool Cursor::macroModeClose(bool cancel)
|
||||
{
|
||||
if (!inMacroMode())
|
||||
return false;
|
||||
@ -1685,7 +1685,7 @@ bool Cursor::macroModeClose()
|
||||
cell().erase(pos());
|
||||
|
||||
// do nothing if the macro name is empty
|
||||
if (s == "\\")
|
||||
if (s == "\\" || cancel)
|
||||
return false;
|
||||
|
||||
// trigger updates of macros, at least, if no full
|
||||
|
@ -501,9 +501,9 @@ public:
|
||||
///
|
||||
void plainInsert(MathAtom const & at);
|
||||
|
||||
/// interpret name of a macro. Returns true if something got
|
||||
/// inserted.
|
||||
bool macroModeClose();
|
||||
/// interpret name of a macro or ditch it if \c cancel is true.
|
||||
/// Returns true if something got inserted.
|
||||
bool macroModeClose(bool cancel = false);
|
||||
/// are we currently typing the name of a macro?
|
||||
bool inMacroMode() const;
|
||||
/// get access to the macro we are currently typing
|
||||
|
@ -836,8 +836,12 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
|
||||
if (cur.selection())
|
||||
cur.clearSelection();
|
||||
else {
|
||||
cmd = FuncRequest(LFUN_FINISHED_FORWARD);
|
||||
cur.undispatched();
|
||||
if (cur.inMacroMode())
|
||||
cur.macroModeClose(true);
|
||||
else {
|
||||
cmd = FuncRequest(LFUN_FINISHED_FORWARD);
|
||||
cur.undispatched();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user