diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Editor.cxx | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/src/Editor.cxx b/src/Editor.cxx index fedc91f59..64f3da3a1 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -4156,16 +4156,20 @@ int Editor::KeyCommand(unsigned int iMessage) {  		break;  	case SCI_LINEENDWRAP: {  			int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1); -			if (currentPos >= endPos) -				endPos = pdoc->LineEndPosition(currentPos); +			int realEndPos = pdoc->LineEndPosition(currentPos); +			if (endPos > realEndPos      // if moved past visible EOLs +				|| currentPos >= endPos) // if at end of display line already +				endPos = realEndPos;  			MovePositionTo(endPos);  			SetLastXChosen();  		}  		break;  	case SCI_LINEENDWRAPEXTEND: {  			int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1); -			if (currentPos >= endPos) -				endPos = pdoc->LineEndPosition(currentPos); +			int realEndPos = pdoc->LineEndPosition(currentPos); +			if (endPos > realEndPos      // if moved past visible EOLs +				|| currentPos >= endPos) // if at end of display line already +				endPos = realEndPos;  			MovePositionTo(endPos, selStream);  			SetLastXChosen();  		} | 
