// FIXME: there would maybe a need for this 'updated' boolean in the future...
bool updated = setCursorFromCoordinates(cur, x, 0);
- updated |= cursorUp(cur);
+ if (cur.inMathed())
+ updated |= cur.up();
+ else
+ updated |= cursorUp(cur);
if (cpar == cur.pit() && cpos == cur.pos()) {
// we have a row which is taller than the workarea. The
// simplest solution is to move to the previous row instead.
- updated |= cursorUp(cur);
+ if (cur.inMathed())
+ updated |= cur.up();
+ else
+ updated |= cursorUp(cur);
}
finishUndo();
int x = cur.x_target();
// FIXME: there would maybe a need for this 'updated' boolean in the future...
bool updated = setCursorFromCoordinates(cur, x, cur.bv().workHeight() - 1);
- updated |= cursorDown(cur);
+ if (cur.inMathed())
+ updated |= cur.down();
+ else
+ updated |= cursorDown(cur);
if (cpar == cur.pit() && cpos == cur.pos()) {
// we have a row which is taller than the workarea. The
// simplest solution is to move to the next row instead.
- updated |= cursorDown(cur);
+ if (cur.inMathed())
+ updated |= cur.down();
+ else
+ updated |= cursorDown(cur);
}
finishUndo();
paste_internally = true;
}
- bv->mouseSetCursor(cur);
+ // we have to update after dePM triggered
+ bool update = bv->mouseSetCursor(cur);
// Insert primary selection with middle mouse
// if there is a local selection in the current buffer,
lyx::dispatch(FuncRequest(LFUN_PRIMARY_SELECTION_PASTE, "paragraph"));
}
- if (cmd.button() == mouse_button::button1) {
+ if (!update && cmd.button() == mouse_button::button1) {
needsUpdate = false;
cur.noUpdate();
}