Scale the interface fractionally on Linux
Java2D on X11 (and so under XWayland) truncates its scale to a whole number, drawing 150 % at 100 %. On Linux, pin Java2D to 1 and hand the full factor to FlatLaf, taken from XSETTINGS Xft/DPI, KWin's Xwayland scale or GDK_SCALE, or chosen in Options → Design. The client's own sizes now go through UIScale: borders, gaps, dialog and row sizes, icons (rendered at the scaled size, so they stay crisp), custom-painted components and font sizes in the HTML views. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
package com.ts3client.ui;
|
||||
|
||||
import com.formdev.flatlaf.util.ScaledEmptyBorder;
|
||||
import com.formdev.flatlaf.util.UIScale;
|
||||
import com.ts3client.net.ClientEntry;
|
||||
import com.ts3client.net.Group;
|
||||
import com.ts3client.net.TeamspeakConnection;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.GrayFilter;
|
||||
import javax.swing.ImageIcon;
|
||||
@@ -48,10 +49,10 @@ final class ServerGroupsDialog extends JDialog {
|
||||
|
||||
list.setLayout(new BoxLayout(list, BoxLayout.Y_AXIS));
|
||||
JScrollPane scroll = new JScrollPane(list);
|
||||
scroll.setPreferredSize(new Dimension(280, 360));
|
||||
scroll.setPreferredSize(UIScale.scale(new Dimension(280, 360)));
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(16);
|
||||
|
||||
header.setBorder(BorderFactory.createEmptyBorder(8, 10, 4, 10));
|
||||
header.setBorder(new ScaledEmptyBorder(8, 10, 4, 10));
|
||||
header.setHorizontalAlignment(SwingConstants.LEFT);
|
||||
|
||||
JButton close = new JButton("Close");
|
||||
|
||||
Reference in New Issue
Block a user