- save_ = mb;
- FontSize oldsize = save_.font.size();
- mb.fontname = name;
- mb.font = sane_font;
- augmentFont(mb.font, from_ascii(name));
- mb.font.setSize(oldsize);
+ if (change_) {
+ save_ = mb;
+ FontSize oldsize = save_.font.size();
+ ColorCode oldcolor = save_.font.color();
+ docstring const oldname = from_ascii(save_.fontname);
+ mb.fontname = name;
+ mb.font = sane_font;
+ augmentFont(mb.font, from_ascii(name));
+ mb.font.setSize(oldsize);
+ if (string(name) != "lyxtex"
+ && ((isTextFont(oldname) && oldcolor != Color_foreground)
+ || (isMathFont(oldname) && oldcolor != Color_math)))
+ mb.font.setColor(oldcolor);
+ }