FlatLaf Change Log ================== ## 3.7-SNAPSHOT #### Fixed bugs - Tree and List: Fixed painting of rounded drop backgrounds. (issue #1023) #### Incompatibilities - FlatLaf properties files are now loaded using the UTF-8 character encoding instead of ISO 8859-1. In usual properties files you will not notice any difference because they use only ASCII characters, but if you've put localized (non-English) texts (e.g. German umlauts) into your properties files, you need to convert them to UTF-8. Properties files created with the FlatLaf Theme Editor already use UTF-8, including in older versions. (issue #1031) ## 3.6.1 - Extras: Support JSVG 2.0.0. Minimum JSVG version is now 1.6.0. (issue #997) - FlatLaf window decorations (Windows 10/11 only): Improved diagonal window resizing on top-left and top-right window corners. Top window resize area now also covers iconify/maximize/close buttons. (issue #1015) - ToggleButton: Styling `selectedForeground` did not work if `foreground` is also styled. (issue #1017) - JideSplitButton: Fixed updating popup when switching theme. (issue #1000) - IntelliJ Themes: Fixed logging false errors when loading 3rd party `.theme.json` files. (issue #990) - Linux: Popups appeared in wrong position on multi-screen setup if primary display is located below or right to secondary display. (see [NetBeans issue #8532](https://github.com/apache/netbeans/issues/8532)) - macOS: Fixed popup flickering after theme change. (issue #1009) - macOS with JetBrains Runtime: Fixed sometimes empty popups. (issue #1019) ## 3.6 #### New features and improvements - macOS: Re-enabled rounded popup border (see PR #772) on macOS 14.4+ (was disabled in 3.5.x). - Increased contrast of text for better readability: (PR #972; issue #762) - In **FlatLaf Dark**, **FlatLaf Darcula** and many dark IntelliJ themes, made all text colors brighter. - In **FlatLaf Light**, **FlatLaf IntelliJ** and many light IntelliJ themes, made disabled text colors slightly darker. - In **FlatLaf macOS Light**, made disabled text colors darker. - In **FlatLaf macOS Dark**, made text colors of "default" button and selected ToggleButton lighter. - CheckBox: Support styling indeterminate state of [tri-state check boxes](https://www.javadoc.io/doc/com.formdev/flatlaf-extras/latest/com/formdev/flatlaf/extras/components/FlatTriStateCheckBox.html). (PR #936; issue #919) - List: Support for alternate row highlighting. (PR #939) - Tree: Support for alternate row highlighting. (PR #903) - Tree: Support wide cell renderer. (issue #922) - ScrollBar: Use rounded thumb also on Windows (as on macOS and Linux) and made thumb slightly darker/lighter. (issue #918) - Extras: `FlatSVGIcon` color filters now can access painting component to implement component state based color mappings. (issue #906) - Linux: - Rounded iconify/maximize/close buttons if using FlatLaf window decorations. (PR #971) - Added `libflatlaf-linux-arm64.so` for Linux on ARM64. (issue #899) - Use X11 window manager events to resize window, if FlatLaf window decorations are enabled. This gives FlatLaf windows a more "native" feeling. (issue #866) - IntelliJ Themes: - Updated to latest versions and fixed various issues. - Support customizing through properties files. (issue #824) - SwingX: Support `JXTipOfTheDay` component. (issue #980) - Support key prefixes for Linux desktop environments (e.g. `[gnome]`, `[kde]` or `[xfce]`) in properties files. (issue #974) - Support custom key prefixes (e.g. `[win10]` or `[test]`) in properties files. (issue #649) - Support multi-prefixed keys (e.g. `[dark][gnome]TitlePane.buttonBackground`). The value is only used if all prefixes match current platform/theme. - Support new component border color to indicate success state (set client property `JComponent.outline` to `success`). (PR #982, issue #945) - Fonts: Updated **Inter** to [v4.1](https://github.com/rsms/inter/releases/tag/v4.1). #### Fixed bugs - Button: Fixed background and foreground colors for `borderless` and `toolBarButton` style default buttons (`JButton.isDefaultButton()` is `true`). (issue #947) - FileChooser: Improved performance when navigating to large directories with thousands of files. (issue #953) - PopupFactory: Fixed NPE on Windows 10 when `owner` is `null`. (issue #952) - Popup: On Windows 10, drop shadow of heavy-weight popup was not updated if popup moved/resized. (issue #942) - FlatLaf window decorations: - Minimize and maximize icons were not shown for custom scale factors less than 100% (e.g. `-Dflatlaf.uiScale=75%`). (issue #951) - Linux: Fixed occasional maximizing of window when single-clicking the window's title bar. (issue #637) - Styling: MigLayout visual padding was not updated after applying style to Button, ComboBox, Spinner, TextField (and subclasses) and ToggleButton. (issue #965) - Linux: Popups (menus and combobox lists) were not hidden when window is moved, resized, maximized, restored, iconified or switched to another window. (issue #962) - Fixed loading FlatLaf UI delegate classes when using FlatLaf in special application where multiple class loaders are involved. E.g. in Eclipse plugin or in LibreOffice extension. (issues #955 and #851) - HTML: Fixed rendering of `
` in dark themes. (issue #932) - TextComponents: `selectAllOnFocusPolicy` related changes: - No longer select all text if selection (or caret position) was changed by application and `selectAllOnFocusPolicy` is `once` (the default). (issue #983) - FormattedTextField and Spinner: `selectAllOnFocusPolicy = once` behaves now as `always` (was `never` before), which means that all text is selected when component gains focus. This is because of special behavior of `JFormattedTextField` that did not allow implementation of `once`. - Client property `JTextField.selectAllOnFocusPolicy` now also works on (editable) `JComboBox` and on `JSpinner`. - Added client property `JTextField.selectAllOnMouseClick` to override UI property `TextComponent.selectAllOnMouseClick`. (issue #961) - For `selectAllOnMouseClick = true`, clicking with the mouse into the text field, to focus it, now always selects all text, even if `selectAllOnFocusPolicy` is `once`. #### Incompatibilities - IntelliJ Themes: - Theme prefix in `IntelliJTheme$ThemeLaf.properties` changed from `[theme-name]` to `{theme-name}`. - Renamed classes in package `com.formdev.flatlaf.intellijthemes.materialthemeuilite` from `Flat` to `FlatMT`. - Removed `Gruvbox Dark Medium` and `Gruvbox Dark Soft` themes. - Prefixed keys in properties files (e.g. `[dark]Button.background` or `[win]Button.arc`) are now handled earlier than before. In previous versions, prefixed keys always had higher priority than unprefixed keys and did always overwrite unprefixed keys. Now prefixed keys are handled in same order as unprefixed keys, which means that if a key is prefixed and unprefixed (e.g. `[win]Button.arc` and `Button.arc`), the one which is last specified in properties file is used.\ Following worked in previous versions, but now `Button.arc` is always `6`: ~~~properties [win]Button.arc = 12 Button.arc = 6 ~~~ This works in new (and old) versions: ~~~properties Button.arc = 6 [win]Button.arc = 12 ~~~ ## 3.5.4 #### Fixed bugs - HTML: Fixed NPE when using HTML text on a component with `null` font. (issue #930; PR #931; regression in 3.5) - Linux: Fixed NPE when using FlatLaf window decorations and switching theme. (issue #933; regression in 3.5.3) ## 3.5.3 #### Fixed bugs - HTML: Fixed wrong rendering if HTML text contains `