+ // Case when no explicit update is requested.
+ if (!(flags & (Update::SinglePar | Update::Force))) {
+ if (fitCursor() || multiParSel()) {
+ // a CoordCache update is needed
+ updateMetrics(false);
+ // tell the frontend to update the screen.
+ return make_pair(true, false);
+ }
+ // no need to do anything.
+ return make_pair(false, false);
+ }
+
+ // We are now in the case (Update::SinglePar | Update::Force)
+ bool single_par = flags & Update::SinglePar;
+ updateMetrics(single_par);
+
+ // Don't forget to do check for fitCursor() and multiParSel().
+ fitCursor();
+ multiParSel();
+
+ return make_pair(true, single_par);