[ 
https://issues.apache.org/jira/browse/NETBEANS-980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eirik Bakke resolved NETBEANS-980.
----------------------------------
    Resolution: Fixed

Closing as pull request was merged.

> Home/end/up/down do not work properly when word wrapping is enabled
> -------------------------------------------------------------------
>
>                 Key: NETBEANS-980
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-980
>             Project: NetBeans
>          Issue Type: Bug
>          Components: editor - Other, editor - Painting & Printing
>    Affects Versions: 9.0
>            Reporter: Eirik Bakke
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Caret movements via Home/End and arrow Up/Down keys do not work properly when 
> text wrap (especially in "after words" mode) is enabled in the NetBeans 
> editor.
> Specific bugs:
> 1) Pressing Home (Fn+Left Arrow on MacBooks) will bring the text caret to the 
> beginning of the paragraph rather than to the beginning of the current wrap 
> line (physical line).
> 2) Pressing End (Fn+Right Arrow on MacBooks) will bring the text caret to the 
> beginning of the next wrap line instead of to the end of the current wrap 
> line.
> 3) Pressing Up has no effect if the preceding wrap line ended before the 
> caret's current X position.
> 4) Pressing Down will move the caret down _two_ lines if the following wrap 
> line ended before the caret's current X position (and assuming the wrap line 
> two lines down is long enough).
> 5) Left-clicking the mouse to the right of the end of a wrap line puts the 
> caret on the beginning of the next wrap line rather than at the end of the 
> current (clicked) wrap line.
> The Home/End/Up/Down actions are all implemented in o.n.editor.BaseKit 
> (UpAction/DownAction/BeginLineAction/EndLineAction).
> Bug number 1 above, for the Home action (BeginLineAction), is easy to fix and 
> is unrelated to the others. (Don't allow Utilities.getRowFirstNonWhite to 
> move the caret before lineStartPos.)
> Bugs 2-5 above all relate to what caret position is mapped to the "infinite" 
> horizontal space that follows each wrap line. With NetBeans' current 
> behavior, this space corresponds to a caret position directly following the 
> last character of a wrap line. This caret position, however, is physically 
> mapped (and painted) on the beginning of the following wrap line, which 
> confuses the logic for the End, Up, and Down actions. I suspect that if bug 5 
> is fixed, then bugs 2-4 might "fix themselves" as well.
> For bug 5, I think the best solution when clicking the space beyond the end 
> of a wrap line would be to move the caret to right _before_ the last 
> character on the wrap line. This character is usually a space (in word wrap 
> mode), though it could also be a hyphen or such if a more advanced word 
> wrapping algorithm is used (proposed in the pull request for NETBEANS-977). 
> The resulting behavior would be similar to that of a default JTextArea, or 
> jEdit (though these never break words on anything else than a space). Another 
> solution would be to do like the TextEdit app on MacOS, where the cursor is 
> placed _after_ the last character on the wrap line, like NetBeans currently 
> does, but with a backwards bias such that the cursor is painted on the end of 
> the current wrap line instead of on the beginning of the next wrap line. The 
> latter is probably harder to implement, and is not really necessary.
> To test the above bugs:
> 1) Go to Options/Preferences->Editor->Formatting, select "All Languages" and 
> set "Line Wrap" to "After words". Click OK.
> 2) Create a new plain text file and paste in the paragraph "SHORTWORD 
> LOOOOOOOOOOOOONGWORD SHORTWORD LUUUUUUUUUUUNGWORD".
> 3) Resize the editor window so that the paragraph gets split into four wrap 
> lines (one word on each wrap line--i.e. make the editor a little wider than 
> the long word).
> 4) For each bugs 1-4 listed above, position the caret right after 
> "...OOOOONG", then press the relevant key to test.
> 5) To test bug 5 above, click the mouse to the right of the first, second, or 
> third wrap line.
> Tested in NetBeans 9.0 rc1.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to