commit 89342f2946abd5d01b019a729d1f160b0c9d3d50
Author: Guillaume Munch <[email protected]>
Date: Sat Aug 29 01:51:38 2015 +0100
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 bcc9895..f5fb3b1 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.