better Home key behavior in editors: dlangide/issue#148

This commit is contained in:
Vadim Lopatin 2016-10-13 12:03:18 +03:00
parent 7948509a6d
commit e2bc56d976
1 changed files with 11 additions and 1 deletions

View File

@ -1335,8 +1335,18 @@ class EditWidgetBase : ScrollWidgetBase, EditableContentListener, MenuItemAction
return true;
case LineBegin:
case SelectLineBegin:
auto space = _content.getLineWhiteSpace(_caretPos.line);
if (_caretPos.pos > 0) {
_caretPos.pos = 0;
if (_caretPos.pos > space.firstNonSpaceIndex && space.firstNonSpaceIndex > 0)
_caretPos.pos = space.firstNonSpaceIndex;
else
_caretPos.pos = 0;
ensureCaretVisible();
updateSelectionAfterCursorMovement(oldCaretPos, (a.id & 1) != 0);
} else {
// caret pos is 0
if (space.firstNonSpaceIndex > 0)
_caretPos.pos = space.firstNonSpaceIndex;
ensureCaretVisible();
updateSelectionAfterCursorMovement(oldCaretPos, (a.id & 1) != 0);
}