From: Jean-Marc Lasgouttes Date: Thu, 25 Apr 2024 12:28:10 +0000 (+0200) Subject: Set buffer_ correctly when inseting a math macro over a selection X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b45a957929a78cefc729a0fa984214eb83357d42;p=lyx.git 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. --- diff --git a/src/mathed/InsetMathMacro.cpp b/src/mathed/InsetMathMacro.cpp index 9d67c78077..03794c6632 100644 --- a/src/mathed/InsetMathMacro.cpp +++ b/src/mathed/InsetMathMacro.cpp @@ -1080,6 +1080,8 @@ void InsetMathMacro::attachArguments(vector 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_);