From 2072de8349f2a0c3b35336583a4fa2c076af8cb3 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Tue, 30 Jun 2015 19:27:38 +0200 Subject: [PATCH] Avoid code duplication --- src/mathed/MathMacro.cpp | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp index e772bc1b04..918a9896e6 100644 --- a/src/mathed/MathMacro.cpp +++ b/src/mathed/MathMacro.cpp @@ -192,6 +192,18 @@ void MathMacro::Private::updateChildren(MathMacro * owner) if (p) p->setOwner(owner); } + + if (macro_ && lyxrc.preview == LyXRC::PREVIEW_ON) { + // We need to update macro_ by ourselves because in this case + // MathData::metrics() is not called when selecting a math inset + DocIterator const & pos = macroBackup_.pos(); + Buffer const * buf = pos.buffer(); + if (buf && !theBufferList().isLoaded(buf)) + buf = 0; + macro_ = buf ? buf->getMacro(owner->name(), pos) : 0; + if (!macro_) + macro_ = ¯oBackup_; + } } @@ -204,17 +216,6 @@ MathMacro::MathMacro(MathMacro const & that) : InsetMathNest(that), d(new Private(*that.d)) { d->updateChildren(this); - if (d->macro_ && lyxrc.preview == LyXRC::PREVIEW_ON) { - // We need to update d->macro_ by ourselves because in this case - // MathData::metrics() is not called when selecting a math inset - DocIterator const & pos = d->macroBackup_.pos(); - Buffer const * buf = pos.buffer(); - if (buf && !theBufferList().isLoaded(buf)) - buf = 0; - d->macro_ = buf ? buf->getMacro(name(), pos) : 0; - if (!d->macro_) - d->macro_ = &d->macroBackup_; - } } @@ -225,17 +226,6 @@ MathMacro & MathMacro::operator=(MathMacro const & that) InsetMathNest::operator=(that); *d = *that.d; d->updateChildren(this); - if (d->macro_ && lyxrc.preview == LyXRC::PREVIEW_ON) { - // We need to update d->macro_ by ourselves because in this case - // MathData::metrics() is not called when selecting a math inset - DocIterator const & pos = d->macroBackup_.pos(); - Buffer const * buf = pos.buffer(); - if (buf && !theBufferList().isLoaded(buf)) - buf = 0; - d->macro_ = buf ? buf->getMacro(name(), pos) : 0; - if (!d->macro_) - d->macro_ = &d->macroBackup_; - } return *this; } -- 2.39.2