[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257067#comment-17257067 ] Matthias Bläsing commented on NETBEANS-5070: 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256735#comment-17256735 ] Matthias Bläsing commented on NETBEANS-5070: As I see it, the problem is not the font metric, but the calculation of the positions where differences in the calculations of the position at various places in Sel.java and Term.java and maybe the fact, that calculations are done in integer space, but that is a shot in the dark. > 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256705#comment-17256705 ] Matthias Bläsing commented on NETBEANS-5070: Are you sure, that you would not find that is true for every resolution (i.e. also SCALE=1)? With which font was that tested? Was it monospaced? I expect a monospaced font not to contain kerning information, but "regular" fonts will contain it and it might cause the character position to change. > 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256702#comment-17256702 ] Michal Hlavac commented on NETBEANS-5070: - Sorry I meant string width. From what I tried and problem is, that I am not swing pro, I discovered that with {{SCALE = 2}}, fixed font size and e.g. string of 10 characters width is not same as {{width('a') * 10}} > 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256636#comment-17256636 ] Matthias Bläsing commented on NETBEANS-5070: Sorry - but I don't see the problem with the assumption, that the width of a character is fixed. For a given resolution (DPI) and a given monospaced font I expect all characters to have the same width. From my POV the terminal needs to be updated when the DPI or the font changes. When displays with different resolutions are used (not sure how swing handles it) and the widget is visible on both screens, then the story changes, here it would be interesting to know what swing does in that case. > 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256633#comment-17256633 ] Michal Hlavac commented on NETBEANS-5070: - I was thinking about revert all this work and try it again. Problem with netbeans terminal emulator implementation is, that it assumes fixed character width. It's true for SCALE = 1, but not for SCALE = 2. I don't know home many developers uses 4K displays. > 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 > > 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
[jira] [Commented] (NETBEANS-5070) Partitial fix for NETBEANS-819 breaks terminal
[ https://issues.apache.org/jira/browse/NETBEANS-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17256626#comment-17256626 ] Matthias Bläsing commented on NETBEANS-5070: First result from analysis: we see an overflow here - the negative value results from a line of only \0 chars. These have a width of 0 and so we never advance and end the loop with an exception. > 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 > > 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