mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Really fix the problem with not updated macros
Revert to the strategy used at8f86ee74
but not using mathedWordList because it may be still uninitialized at load time. Instead, use the globalMacros method for getting the same info. There was a thinko at8ec91e80
, because globalMacros always returns null for user defined macros.
This commit is contained in:
parent
9313f8565b
commit
e36a8903d7
@ -495,7 +495,9 @@ void BufferView::processUpdateFlags(Update::flags flags)
|
||||
|
||||
// updateMetrics() does not update paragraph position
|
||||
// This is done at draw() time. So we need a redraw!
|
||||
buffer_.changed(false);
|
||||
// We pass true so that metrics are computed for the sake
|
||||
// of having MacroData updated.
|
||||
buffer_.changed(true);
|
||||
|
||||
if (needsFitCursor()) {
|
||||
// The cursor is off screen so ensure it is visible.
|
||||
@ -2165,7 +2167,9 @@ void BufferView::updateHoveredInset() const
|
||||
|
||||
// This event (moving without mouse click) is not passed further.
|
||||
// This should be changed if it is further utilized.
|
||||
buffer_.changed(false);
|
||||
// We pass true so that metrics are computed for the sake
|
||||
// of having MacroData updated.
|
||||
buffer_.changed(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -614,9 +614,9 @@ void MathMacro::draw(PainterInfo & pi, int x, int y) const
|
||||
drawMarkers2(pi, expx, expy);
|
||||
} else {
|
||||
bool drawBox = lyxrc.macro_edit_style == LyXRC::MACRO_EDIT_INLINE_BOX;
|
||||
MacroData const * macro = MacroTable::globalMacros().get(name());
|
||||
bool upshape = macro && macro->symbol()
|
||||
&& macro->symbol()->extra == "textmode";
|
||||
bool user_macro = !MacroTable::globalMacros().get(name());
|
||||
bool upshape = user_macro ? false : d->macro_ && d->macro_->symbol()
|
||||
&& d->macro_->symbol()->extra == "textmode";
|
||||
Changer dummy = pi.base.font.changeShape(upshape ? UP_SHAPE
|
||||
: pi.base.font.shape());
|
||||
|
||||
@ -930,11 +930,11 @@ bool MathMacro::folded() const
|
||||
|
||||
void MathMacro::write(WriteStream & os) const
|
||||
{
|
||||
MacroData const * macro = MacroTable::globalMacros().get(name());
|
||||
bool textmode_macro = macro && macro->symbol()
|
||||
&& macro->symbol()->extra == "textmode";
|
||||
bool needs_mathmode = macro && (!macro->symbol()
|
||||
|| macro->symbol()->extra != "textmode");
|
||||
bool user_macro = !MacroTable::globalMacros().get(name());
|
||||
bool textmode_macro = user_macro ? false : d->macro_ && d->macro_->symbol()
|
||||
&& d->macro_->symbol()->extra == "textmode";
|
||||
bool needs_mathmode = user_macro ? bool(d->macro_) : d->macro_ && (!d->macro_->symbol()
|
||||
|| d->macro_->symbol()->extra != "textmode");
|
||||
|
||||
MathEnsurer ensurer(os, needs_mathmode, true, textmode_macro);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user