mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-11 22:47:13 -06:00
Merge branch 'release-1.6.3' into main
# Conflicts: # CHANGELOG.md # flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTreeUI.java
This commit is contained in:
1
.github/workflows/ci.yml
vendored
1
.github/workflows/ci.yml
vendored
@@ -34,6 +34,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
- uses: gradle/wrapper-validation-action@v1
|
||||||
|
if: matrix.java == '1.8'
|
||||||
|
|
||||||
- name: Setup Java ${{ matrix.java }}
|
- name: Setup Java ${{ matrix.java }}
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
|
|||||||
@@ -59,8 +59,13 @@ FlatLaf Change Log
|
|||||||
`InputStream`. (issues #419 and #325)
|
`InputStream`. (issues #419 and #325)
|
||||||
- `FlatSVGUtils`: Support loading SVG from `URL` (for JPMS). (issue #325)
|
- `FlatSVGUtils`: Support loading SVG from `URL` (for JPMS). (issue #325)
|
||||||
|
|
||||||
|
|
||||||
|
## 1.6.3
|
||||||
|
|
||||||
#### Fixed bugs
|
#### Fixed bugs
|
||||||
|
|
||||||
|
- ComboBox (not editable): Fixed regression in FlatLaf 1.6.2 that may display
|
||||||
|
text in non-editable combo boxes in bold. (issue #423)
|
||||||
- Tree: Fixed editing cell issue with custom cell renderer and cell editor that
|
- Tree: Fixed editing cell issue with custom cell renderer and cell editor that
|
||||||
use same component for rendering and editing. (issue #385)
|
use same component for rendering and editing. (issue #385)
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
val releaseVersion = "1.6.2"
|
val releaseVersion = "1.6.3"
|
||||||
val developmentVersion = "2.0-SNAPSHOT"
|
val developmentVersion = "2.0-SNAPSHOT"
|
||||||
|
|
||||||
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
||||||
|
|||||||
@@ -575,22 +575,6 @@ public class FlatComboBoxUI
|
|||||||
@Override
|
@Override
|
||||||
@SuppressWarnings( "unchecked" )
|
@SuppressWarnings( "unchecked" )
|
||||||
public void paintCurrentValue( Graphics g, Rectangle bounds, boolean hasFocus ) {
|
public void paintCurrentValue( Graphics g, Rectangle bounds, boolean hasFocus ) {
|
||||||
// apply clipping using rounded rectangle to avoid that renderer paints
|
|
||||||
// outside of border if combobox uses larger arc for edges
|
|
||||||
// (e.g. FlatClientProperties.COMPONENT_ROUND_RECT is true)
|
|
||||||
FlatBorder border = FlatUIUtils.getOutsideFlatBorder( comboBox );
|
|
||||||
if( border != null ) {
|
|
||||||
int clipArc = border.getArc( comboBox ) - (border.getLineWidth( comboBox ) * 2);
|
|
||||||
if( clipArc > 0 ) {
|
|
||||||
int x = bounds.x;
|
|
||||||
int width = bounds.width + bounds.height;
|
|
||||||
if( !comboBox.getComponentOrientation().isLeftToRight() )
|
|
||||||
x -= bounds.height;
|
|
||||||
((Graphics2D)g).clip( FlatUIUtils.createComponentRectangle(
|
|
||||||
x, bounds.y, width, bounds.height, scale( (float) clipArc ) ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
paddingBorder.uninstall();
|
paddingBorder.uninstall();
|
||||||
|
|
||||||
ListCellRenderer<Object> renderer = comboBox.getRenderer();
|
ListCellRenderer<Object> renderer = comboBox.getRenderer();
|
||||||
@@ -604,11 +588,23 @@ public class FlatComboBoxUI
|
|||||||
c.setBackground( getBackground( enabled ) );
|
c.setBackground( getBackground( enabled ) );
|
||||||
c.setForeground( getForeground( enabled ) );
|
c.setForeground( getForeground( enabled ) );
|
||||||
|
|
||||||
|
// make renderer component temporary non-opaque to avoid that renderer paints
|
||||||
|
// background outside of border if combobox uses larger arc for edges
|
||||||
|
// (e.g. FlatClientProperties.COMPONENT_ROUND_RECT is true)
|
||||||
|
boolean oldOpaque = true;
|
||||||
|
if( c instanceof JComponent ) {
|
||||||
|
oldOpaque = ((JComponent)c).isOpaque();
|
||||||
|
((JComponent)c).setOpaque( false );
|
||||||
|
}
|
||||||
|
|
||||||
boolean shouldValidate = (c instanceof JPanel);
|
boolean shouldValidate = (c instanceof JPanel);
|
||||||
|
|
||||||
paddingBorder.install( c );
|
paddingBorder.install( c );
|
||||||
currentValuePane.paintComponent( g, c, comboBox, bounds.x, bounds.y, bounds.width, bounds.height, shouldValidate );
|
currentValuePane.paintComponent( g, c, comboBox, bounds.x, bounds.y, bounds.width, bounds.height, shouldValidate );
|
||||||
paddingBorder.uninstall();
|
paddingBorder.uninstall();
|
||||||
|
|
||||||
|
if( c instanceof JComponent )
|
||||||
|
((JComponent)c).setOpaque( oldOpaque );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class FlatCustomBordersTest
|
|||||||
private static final Color RED = new Color( 0x60ff0000, true );
|
private static final Color RED = new Color( 0x60ff0000, true );
|
||||||
private static final Color GREEN = new Color( 0x6000ff00, true );
|
private static final Color GREEN = new Color( 0x6000ff00, true );
|
||||||
private static final Color MAGENTA = new Color( 0x60ff00ff, true );
|
private static final Color MAGENTA = new Color( 0x60ff00ff, true );
|
||||||
private static final Color ORANGE = new Color( 0x60ffc800, true );
|
private static final Color BLUE = new Color( 0x300000ff, true );
|
||||||
|
|
||||||
public static void main( String[] args ) {
|
public static void main( String[] args ) {
|
||||||
SwingUtilities.invokeLater( () -> {
|
SwingUtilities.invokeLater( () -> {
|
||||||
@@ -127,7 +127,7 @@ public class FlatCustomBordersTest
|
|||||||
@SuppressWarnings( "unchecked" )
|
@SuppressWarnings( "unchecked" )
|
||||||
private void applySpecialComboBoxRenderers() {
|
private void applySpecialComboBoxRenderers() {
|
||||||
BasicComboBoxRenderer sharedRenderer = new BasicComboBoxRenderer();
|
BasicComboBoxRenderer sharedRenderer = new BasicComboBoxRenderer();
|
||||||
sharedRenderer.setBorder( new LineBorder( ORANGE, UIScale.scale( 2 ) ) );
|
sharedRenderer.setBorder( new LineBorder( BLUE, UIScale.scale( 2 ) ) );
|
||||||
comboBox29.setRenderer( sharedRenderer );
|
comboBox29.setRenderer( sharedRenderer );
|
||||||
comboBox30.setRenderer( sharedRenderer );
|
comboBox30.setRenderer( sharedRenderer );
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ public class FlatCustomBordersTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void applyCustomComboBoxEditorBorder( JComboBox<String> comboBox ) {
|
private void applyCustomComboBoxEditorBorder( JComboBox<String> comboBox ) {
|
||||||
applyCustomComboBoxEditorBorder( comboBox, new LineBorder( ORANGE, UIScale.scale( 6 ) ) );
|
applyCustomComboBoxEditorBorder( comboBox, new LineBorder( BLUE, UIScale.scale( 6 ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyCustomComboBoxEditorBorderWithIcon( JComboBox<String> comboBox ) {
|
private void applyCustomComboBoxEditorBorderWithIcon( JComboBox<String> comboBox ) {
|
||||||
@@ -180,7 +180,7 @@ public class FlatCustomBordersTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void applyCustomComboBoxRendererBorder( JComboBox<String> comboBox ) {
|
private void applyCustomComboBoxRendererBorder( JComboBox<String> comboBox ) {
|
||||||
applyCustomComboBoxRendererBorder( comboBox, new LineBorder( ORANGE, UIScale.scale( 6 ) ) );
|
applyCustomComboBoxRendererBorder( comboBox, new LineBorder( BLUE, UIScale.scale( 6 ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyCustomComboBoxRendererBorderWithIcon( JComboBox<String> comboBox ) {
|
private void applyCustomComboBoxRendererBorderWithIcon( JComboBox<String> comboBox ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user