+bool InsetInfo::forceLocalFontSwitch() const
+{
+ return params_.type == InsetInfoParams::MENU_INFO
+ || params_.type == InsetInfoParams::SHORTCUTS_INFO
+ || params_.type == InsetInfoParams::SHORTCUT_INFO
+ || params_.type == InsetInfoParams::L7N_INFO;
+}
+
+
+void InsetInfo::metrics(MetricsInfo & mi, Dimension & dim) const
+{
+ const_cast<InsetInfo *>(this)->build();
+ InsetCollapsible::metrics(mi, dim);
+}
+
+
+void InsetInfo::draw(PainterInfo & pi, int x, int y) const
+{
+ Changer chg = changeVar(lyxrc.mark_foreign_language, false);
+ InsetCollapsible::draw(pi, x, y);
+}
+
+void InsetInfo::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted)
+
+{
+ // If the Buffer is a clone, then we neither need nor want to do any
+ // of what follows. We want, rather, just to inherit how things were
+ // in the original Buffer. This is especially important for VCS.
+ // Otherwise, we could in principle have different settings here
+ // than in the Buffer we were exporting.
+ // However, we need to check whether the inset is in an intitle
+ // context.
+ if (buffer().isClone()) {
+ InsetText::checkIntitleContext(it);
+ return;
+ }
+ BufferParams const & bp = buffer().params();
+ params_.lang = it.paragraph().getFontSettings(bp, it.pos()).language();
+ InsetCollapsible::updateBuffer(it, utype, deleted);
+}
+
+
+void InsetInfo::build()
+{