{
cur.push(*this);
left ? idxFirst(cur) : idxLast(cur);
+ // The inset formula dimension is not necessarily the same as the
+ // so we have to indicate to the BufferView that a metrics update
+ // is needed.
+ cur.updateFlags(Update::Force);
}
if (cmd.button() == mouse_button::button1) {
//lyxerr << "## lfunMousePress: setting cursor to: " << cur << endl;
bv.mouseSetCursor(cur);
- // FIXME: we have to enable full redraw here because of the
- // visual box corners that define the inset.
- cur.updateFlags(Update::Decoration | Update::FitCursor);
+ // Update the cursor update flags as needed:
+ //
+ // Update::Decoration: tells to update the decoration (visual box
+ // corners that define the inset)/
+ // Update::FitCursor: adjust the screen to the cursor position if
+ // needed
+ // cur.result().update(): don't overwrite previously set flags.
+ cur.updateFlags(Update::Decoration | Update::FitCursor | cur.result().update());
} else if (cmd.button() == mouse_button::button2) {
MathArray ar;
if (cap::selection()) {