Handle properly top/bottom of inset with mac-like cursor movement

The correct behavior is to go to position 0 going up from first row,
and to end of row when going down on last row.

The targetx value of the cursor is not updated, which makes cursor
movement more natural.

Fixes bug #10701.

(cherry picked from commit 34285cc683)
This commit is contained in:
Jean-Marc Lasgouttes 2017-07-15 17:23:22 +02:00
parent 8be744b827
commit 5f6c681b76
2 changed files with 80 additions and 0 deletions

View File

@ -860,6 +860,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
cur.upDownInText(up, needsUpdate); cur.upDownInText(up, needsUpdate);
needsUpdate |= cur.beforeDispatchCursor().inMathed(); needsUpdate |= cur.beforeDispatchCursor().inMathed();
} else { } else {
pos_type newpos = up ? 0 : cur.lastpos();
if (lyxrc.mac_like_cursor_movement && cur.pos() != newpos) {
needsUpdate |= cur.selHandle(select);
// we do not reset the targetx of the cursor
cur.pos() = newpos;
needsUpdate |= bv->checkDepm(cur, bv->cursor());
cur.updateTextTargetOffset();
if (needsUpdate)
cur.forceBufferUpdate();
break;
}
// if the cursor cannot be moved up or down do not remove // if the cursor cannot be moved up or down do not remove
// the selection right now, but wait for the next dispatch. // the selection right now, but wait for the next dispatch.
if (select) if (select)

68
status.23x Normal file
View File

@ -0,0 +1,68 @@
-*- text -*-
This file describes what has been done in the preparation of LyX 2.3.2.
All comments are welcome.
We try to group things by topic and in decreasing order of importance.
Please feel free to re-arrange if that seems like a good idea.
What's new
==========
** Updates:
***********
* DOCUMENT INPUT/OUTPUT
* TEX2LYX IMPROVEMENTS
* USER INTERFACE
- Handle properly top/bottom of inset with mac-like cursor movement
(bug 10701).
* DOCUMENTATION AND LOCALIZATION
* BUILD/INSTALLATION
** Bug fixes:
*************
* DOCUMENT INPUT/OUTPUT
* LYX2LYX
* USER INTERFACE
* INTERNALS
* DOCUMENTATION AND LOCALIZATION
* LYXHTML
* TEX2LYX
* ADVANCED FIND AND REPLACE
* BUILD/INSTALLATION