When moving the caret up/down between lines, our editing behavior is similar to that of the text editors on various platforms such as mac, windows and linux. When no further up/down movement is possible, the caret is moved either to the start (for up) or end (for down) of the line. This should not reset the "x" co-ordinate maintained for the start caret position and moving the caret down from the start of a line (or vice-versa) should bring it to a position which is offset by this "x" amount on the adjacent line.
First text line for verifying editing behavior. Slightly longer.
Second text line for verifying editing behavior.