From: Guillaume Munch Date: Sat, 29 Aug 2015 00:51:38 +0000 (+0100) Subject: Fix bugs #6078 and #9364 X-Git-Tag: 2.2.0alpha1~281 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=89342f2946abd5d01b019a729d1f160b0c9d3d50;p=lyx.git Fix bugs #6078 and #9364 Remove unwanted clearSelection()s in MathData::updateMacros(). These calls broke text selection with keyboard and mouse, search-and-replace, restoring selection after Undo, etc. in a document with math macros since 1.6.0. (Regression at 6aa54673 and 12314897) I do not know the purpose of these calls, but the selection code has been worked on since, and I cannot produce undesired behaviour after removing them. --- diff --git a/src/mathed/MathData.cpp b/src/mathed/MathData.cpp index bcc9895e72..f5fb3b1161 100644 --- a/src/mathed/MathData.cpp +++ b/src/mathed/MathData.cpp @@ -433,13 +433,8 @@ void MathData::updateMacros(Cursor * cur, MacroContext const & mc, if (oldDisplayMode == MathMacro::DISPLAY_NORMAL && (macroInset->arity() != macroNumArgs || macroInset->optionals() != macroOptionals - || newDisplayMode == MathMacro::DISPLAY_UNFOLDED)) { - + || newDisplayMode == MathMacro::DISPLAY_UNFOLDED)) detachMacroParameters(cur, i); - // FIXME: proper anchor handling, this removes the selection - if (cur) - cur->clearSelection(); - } // the macro could have been copied while resizing this macroInset = operator[](i).nucleus()->asMacro(); @@ -478,11 +473,8 @@ void MathData::updateMacros(Cursor * cur, MacroContext const & mc, attachMacroParameters(cur, i, macroNumArgs, macroOptionals, fromInitToNormalMode, interactive, appetite); - if (cur) { - // FIXME: proper anchor handling, this removes the selection + if (cur) cur->updateInsets(&cur->bottom().inset()); - cur->clearSelection(); - } } // Give macro the chance to adapt to new situation.