Set buffer_ correctly when inseting a math macro over a selection

The code that handles this special macro insertion (in
Cursor::mathMacroClose())) is very weird: it inserts the contents of
the macro _after_ the macro and later, since the macro is 'greedy', it
will eat this contents and put it in its first macro cell.

Does it make sense to you? It does not ake sense to me either. Anyway,
this is the point where one should make sure that the buffer is set.

Fixes ticket #12682.
This commit is contained in:
Jean-Marc Lasgouttes 2024-04-25 14:28:10 +02:00
parent af3521881c
commit b45a957929

View File

@ -1080,6 +1080,8 @@ void InsetMathMacro::attachArguments(vector<MathData> const & args, size_t arity
{
LASSERT(d->displayMode_ == DISPLAY_NORMAL, return);
cells_ = args;
for (auto & cell : cells_)
cell.setBuffer(*buffer_);
d->attachedArgsNum_ = args.size();
cells_.resize(arity, MathData(buffer_));
d->expanded_ = MathData(buffer_);