[ 
https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17257067#comment-17257067
 ] 

Matthias Bläsing edited comment on NETBEANS-5070 at 12/31/20, 6:58 PM:
-----------------------------------------------------------------------

So I looked a bit deeper into the terminal and I think the solution can be 
simpler than the current approach.  It is less invasive, as it only activates a 
different code path, that was already present in the codebase.

Please have a look here: https://github.com/apache/netbeans/pull/2628

The first three commits can be ignored, as they just return the codebase to the 
original state:

- 
https://github.com/apache/netbeans/pull/2628/commits/172a9cf8198ee372fabbfeabc8a3ecc183fa837e
 - Adds a debug option to see the fixed width grid (to verify the char 
positions against that)
- 
https://github.com/apache/netbeans/pull/2628/commits/4d1a41420cf756faa81ee200ac8edf7626632361
 - My suggested fix

I tested on windows 150% + 200% and Linux 2x. Please see if it fixes the 
situation for you too.

I also ran "npx grunt" successfully with my test project on windows.

Before (the first of a pair is scale=1, the second scale=2):

 !before_scale1.png! 
 !before_scale2.png! 
 !before2_scale1.png! 
 !before2_scale2.png! 

After:

 !after_scale1.png! 
 !after_scale2.png! 
 !after2_scale1.png! 
 !after2_scale2.png! 


was (Author: mblaesing):
So I looked a bit deeper into the terminal and I think the solution can be 
simpler than the current approach.  It is less invasive, as it only activates a 
different code path, that was already present in the codebase.

Please have a look here: https://github.com/apache/netbeans/pull/2628

The first three commits can be ignored, as they just return the codebase to the 
original state:

- 
https://github.com/apache/netbeans/pull/2628/commits/172a9cf8198ee372fabbfeabc8a3ecc183fa837e
 - Adds a debug option to see the fixed width grid (to verify the char 
positions against that)
- 
https://github.com/apache/netbeans/pull/2628/commits/4d1a41420cf756faa81ee200ac8edf7626632361
 - My suggested fix

I tested on windows 150% + 200% and Linux 2x. Please see if it fixes the 
situation for you too.

I also ran "npx grunt" successfully with my test project on windows.

> Partitial fix for NETBEANS-819 breaks terminal
> ----------------------------------------------
>
>                 Key: NETBEANS-5070
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-5070
>             Project: NetBeans
>          Issue Type: Bug
>          Components: cnd - Terminalemulator
>    Affects Versions: Next
>            Reporter: Matthias Bläsing
>            Assignee: Michal Hlavac
>            Priority: Blocker
>              Labels: pull-request-available
>             Fix For: 12.3
>
>         Attachments: 99895991-55dd6080-2c41-11eb-9019-c7c96214a802.gif, 
> Bildschirmfoto_2020-12-30_17-07-10.png, after2_scale1.png, after2_scale2.png, 
> after_scale1.png, after_scale2.png, before2_scale1.png, before2_scale2.png, 
> before_scale1.png, before_scale2.png
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> The fix for shifted cursor in terminal windows commited by:
> [https://github.com/apache/netbeans/pull/2509]
> Breaks text selection (video provided by [~lkishalmi] ):
> !99895991-55dd6080-2c41-11eb-9019-c7c96214a802.gif!
> I also saw that behavior on windows and on linux I observed flaky behavior of 
> the terminal and this is matched by exceptions:
> {quote}SEVERE [global]
> java.lang.ArrayIndexOutOfBoundsException: Index 134 out of bounds for length 
> 134
>       at 
> java.desktop/sun.font.FontDesignMetrics.charsWidth(FontDesignMetrics.java:506)
>       at org.netbeans.lib.terminalemulator.Line.stringWidth(Line.java:159)
>       at org.netbeans.lib.terminalemulator.Sel.paint(Sel.java:407)
>       at org.netbeans.lib.terminalemulator.Sel.access$000(Sel.java:71)
>       at org.netbeans.lib.terminalemulator.Sel$2.visit(Sel.java:436)
>       at org.netbeans.lib.terminalemulator.Buffer.visitLines(Buffer.java:205)
>       at org.netbeans.lib.terminalemulator.Term.visitLines(Term.java:912)
>       at org.netbeans.lib.terminalemulator.Sel.paint(Sel.java:434)
>       at org.netbeans.lib.terminalemulator.Term.do_paint(Term.java:3175)
>       at org.netbeans.lib.terminalemulator.Screen.paint(Screen.java:168)
>       at 
> java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
>       at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
>       at 
> java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
>       at 
> java.desktop/javax.swing.JComponent.paint(JComponent.java:1083){quote}
> So we either need a quick fix for this or we need to rollback the referenced 
> commit.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
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