From 3517cace36c4a485d4cb132051c8ba95094cfc48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 20 Apr 2025 10:43:16 +0200 Subject: [PATCH] Fixed: Editor (JSyntaxPane) incorrectly draws line numbers panel on Hi-dpi displays --- CHANGELOG.md | 1 + lib/jsyntaxpane-0.9.5.jar | Bin 606027 -> 606513 bytes .../components/LineNumbersRuler.java | 35 ++++++++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a152f200..f46dcbf11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ All notable changes to this project will be documented in this file. - [#2413] AS3 direct editation - try/catch clause in instance initializer - [#2386] Editor mode - not able to save shape/morphshape points - Loading icon did not respect UI scale factor +- Editor (JSyntaxPane) incorrectly draws line numbers panel on Hi-dpi displays ## [22.0.2] - 2025-01-17 ### Added diff --git a/lib/jsyntaxpane-0.9.5.jar b/lib/jsyntaxpane-0.9.5.jar index c6b05d769677a5c48cd163ad6fa596b3a2474efa..63409e2b9e5a7b489c2feb308520084c26a10109 100644 GIT binary patch delta 11243 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 C0hy}+ diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java index 9b7d98e0c..ac87d90aa 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java @@ -20,11 +20,15 @@ import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsEnvironment; import java.awt.Insets; import java.awt.Rectangle; +import java.awt.Window; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.awt.geom.AffineTransform; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.BorderFactory; @@ -74,7 +78,6 @@ public class LineNumbersRuler extends JPanel public static final int DEFAULT_R_MARGIN = 5; public static final int DEFAULT_L_MARGIN = 5; private Status status; - private final static int HEIGHT = Integer.MAX_VALUE - 1000000; // Text component this TextTextLineNumber component is in sync with protected JEditorPane editor; //JPEXS: changed to protected private int minimumDisplayDigits = 2; @@ -195,14 +198,38 @@ public class LineNumbersRuler extends JPanel int width = fontMetrics.charWidth('0') * digits; Insets insets = getInsets(); int preferredWidth = insets.left + insets.right + width; - + Dimension d = getPreferredSize(); - d.setSize(preferredWidth, HEIGHT); + d.setSize(preferredWidth, getMaxHeight(editor)); setPreferredSize(d); setSize(d); } } + + //JPEXS + private static int getMaxHeight(JEditorPane editor) { + //Original was Integer.MAX_VALUE - 1000000, + //but it seems that on hi-dpi displays this value (height) is multiplied by UI scale + //and can overflow Integer.MAX_VALUE and causes glitches. + //In this method, we divide the height by Y scale value + + + Window window = SwingUtilities.getWindowAncestor(editor); + AffineTransform transform = null; + GraphicsConfiguration configuration; + if (window == null) { + configuration = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); + } else { + configuration = window.getGraphicsConfiguration(); + } + transform = configuration.getDefaultTransform(); + double scaleY = 1.0; + if (transform != null) { + scaleY = transform.getScaleY(); + } + return (int)Math.floor((Integer.MAX_VALUE - 1000000) / scaleY); + } /** * Draw the line numbers @@ -210,7 +237,7 @@ public class LineNumbersRuler extends JPanel @Override public void paintComponent(Graphics g) { super.paintComponent(g); - + FontMetrics fontMetrics = editor.getFontMetrics(editor.getFont()); Insets insets = getInsets(); int currentLine = -1;