So, removing the whole boundary business, we get this behavious:
1) abc| \ndef =right=> abc \n|def 2) ab|c\ndef =right=> abc\n|def =right=> abc\nd|ef 3) abc \nd|ef =left=> abc \n|def =left=> abc| \ndef 4) abc\nd|ef =left=> abc\ndef =left=> ab|c\ndef 5) abc|<newline>\ndef =right=> abc<newline>\n|def 6) abc<newline>d|ef =left=> abc<newline>|def =left=> abc|<newline>def 7) ab|c\n$$1$$\ndef =right=> abc\n|$$1$$\ndef =right=> abc\n$$|1$$\ndef 8) abc\n$$|1$$\ndef =right=> abc\n$$1|$$\ndef =right=> abc\n$$1$$|\ndef 9) abc\n$$1$$|\ndef =right=> abc\n$$1$$\n|defThis is fine, mostly. I don't like 7. There should be a position behind the c, because if you type with the cursor in front of the $$1$ $ the characters appear behind c. In fact the position in front of $$1 $$ shouldn't exist because typing there makes no sense. The same is true for the position behind $$1$$ (see 8).
All these cases apply to cursor left/right. If you use the mouse or cursor up/down, what should happen?
Stefan
PGP.sig
Description: Signierter Teil der Nachricht