+ frontend::FontMetrics const & fm =
+ theFontMetrics(mi.base.font);
+ dim.asc = fm.maxAscent();
+ dim.des = fm.maxDescent();
+
+ string s;
+ switch (kind_) {
+ case LIGATURE_BREAK: s = "|"; break;
+ case END_OF_SENTENCE: s = "."; break;
+ case LDOTS: s = ". . ."; break;
+ case MENU_SEPARATOR: s = " x "; break;
+ case HYPHENATION: s = "-"; break;
+ }
+ docstring ds(s.begin(), s.end());
+ dim.wid = fm.width(ds);
+ if (kind_ == HYPHENATION && dim.wid > 5)
+ dim.wid -= 2; // to make it look shorter
+ bool const changed = dim_ != dim;
+ dim_ = dim;
+ return changed;