fixed/improved vertical position of HTML text when scaled on HiDPI screens on Windows

This commit is contained in:
Karl Tauber
2020-06-22 23:31:01 +02:00
parent 7fb7a1ac85
commit cf436962f8
7 changed files with 396 additions and 7 deletions

View File

@@ -329,6 +329,11 @@ public class FlatButtonUI
}
}
@Override
public void paint( Graphics g, JComponent c ) {
super.paint( FlatLabelUI.createGraphicsHTMLTextYCorrection( g, c ), c );
}
@Override
protected void paintText( Graphics g, AbstractButton b, Rectangle textRect, String text ) {
if( isHelpButton( b ) )

View File

@@ -30,7 +30,6 @@ import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicHTML;
import javax.swing.plaf.basic.BasicLabelUI;
import javax.swing.text.View;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.util.HiDPIUtils;
import com.formdev.flatlaf.util.UIScale;
@@ -127,10 +126,15 @@ public class FlatLabelUI
BasicHTML.updateRenderer( c, text );
}
static Graphics createGraphicsHTMLTextYCorrection( Graphics g, JComponent c ) {
return (c.getClientProperty( BasicHTML.propertyKey ) != null)
? HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g )
: g;
}
@Override
public void paint( Graphics g, JComponent c ) {
View v = (View) c.getClientProperty( BasicHTML.propertyKey );
super.paint( (v != null) ? HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ) : g, c );
super.paint( createGraphicsHTMLTextYCorrection( g, c ), c );
}
@Override

View File

@@ -40,6 +40,7 @@ import javax.swing.plaf.basic.BasicHTML;
import javax.swing.text.View;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.util.Graphics2DProxy;
import com.formdev.flatlaf.util.HiDPIUtils;
/**
* Renderer for menu items.
@@ -360,7 +361,7 @@ debug*/
if( isArmedOrSelected( menuItem ) && selectionForeground != null )
g = new GraphicsProxyWithTextColor( (Graphics2D) g, selectionForeground );
htmlView.paint( g, textRect );
htmlView.paint( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ), textRect );
}
protected static boolean isArmedOrSelected( JMenuItem menuItem ) {

View File

@@ -31,6 +31,7 @@ import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicProgressBarUI;
import com.formdev.flatlaf.util.HiDPIUtils;
import com.formdev.flatlaf.util.UIScale;
/**
@@ -194,6 +195,11 @@ public class FlatProgressBarUI
}
}
@Override
protected void paintString( Graphics g, int x, int y, int width, int height, int amountFull, Insets b ) {
super.paintString( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ), x, y, width, height, amountFull, b );
}
@Override
protected void setAnimationIndex( int newValue ) {
super.setAnimationIndex( newValue );

View File

@@ -153,7 +153,7 @@ public class FlatRadioButtonUI
}
}
super.paint( g, c );
super.paint( FlatLabelUI.createGraphicsHTMLTextYCorrection( g, c ), c );
}
@Override