mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 22:10:54 +03:00
Merge main into system-file-chooser
Some checks failed
CI / build (11) (push) Has been cancelled
Fonts / Fonts (inter) (push) Has been cancelled
Fonts / Fonts (jetbrains-mono) (push) Has been cancelled
Fonts / Fonts (roboto) (push) Has been cancelled
Fonts / Fonts (roboto-mono) (push) Has been cancelled
Native Libraries / Natives (macos-latest) (push) Has been cancelled
Native Libraries / Natives (ubuntu-24.04-arm) (push) Has been cancelled
Native Libraries / Natives (ubuntu-latest) (push) Has been cancelled
Native Libraries / Natives (windows-latest) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
Some checks failed
CI / build (11) (push) Has been cancelled
Fonts / Fonts (inter) (push) Has been cancelled
Fonts / Fonts (jetbrains-mono) (push) Has been cancelled
Fonts / Fonts (roboto) (push) Has been cancelled
Fonts / Fonts (roboto-mono) (push) Has been cancelled
Native Libraries / Natives (macos-latest) (push) Has been cancelled
Native Libraries / Natives (ubuntu-24.04-arm) (push) Has been cancelled
Native Libraries / Natives (ubuntu-latest) (push) Has been cancelled
Native Libraries / Natives (windows-latest) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
This commit is contained in:
58
.github/workflows/ci.yml
vendored
58
.github/workflows/ci.yml
vendored
@@ -20,8 +20,43 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
name: build (11)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: gradle/actions/wrapper-validation@v4
|
||||||
|
|
||||||
|
- name: Setup Java 11
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
distribution: temurin # pre-installed on ubuntu-latest
|
||||||
|
cache: gradle
|
||||||
|
|
||||||
|
- name: Check with Error Prone
|
||||||
|
run: ./gradlew errorprone clean
|
||||||
|
|
||||||
|
- name: Build with Gradle
|
||||||
|
run: ./gradlew build
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: FlatLaf-build-artifacts
|
||||||
|
path: |
|
||||||
|
flatlaf-*/build/libs
|
||||||
|
flatlaf-*/flatlaf-*/build/libs
|
||||||
|
!**/*-javadoc.jar
|
||||||
|
!**/*-sources.jar
|
||||||
|
|
||||||
|
|
||||||
|
build-on:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
if: github.repository == 'JFormDesigner/FlatLaf'
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# test against
|
# test against
|
||||||
@@ -30,7 +65,6 @@ jobs:
|
|||||||
# - latest Java version(s)
|
# - latest Java version(s)
|
||||||
java:
|
java:
|
||||||
- 8
|
- 8
|
||||||
- 11 # LTS
|
|
||||||
- 17 # LTS
|
- 17 # LTS
|
||||||
- 21 # LTS
|
- 21 # LTS
|
||||||
- 23 # latest
|
- 23 # latest
|
||||||
@@ -42,9 +76,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: gradle/actions/wrapper-validation@v4
|
|
||||||
if: matrix.java == '8'
|
|
||||||
|
|
||||||
- name: Setup Java ${{ matrix.java }}
|
- name: Setup Java ${{ matrix.java }}
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
@@ -52,28 +83,13 @@ jobs:
|
|||||||
distribution: temurin # Java 8, 11, 17 and 21 are pre-installed on ubuntu-latest
|
distribution: temurin # Java 8, 11, 17 and 21 are pre-installed on ubuntu-latest
|
||||||
cache: gradle
|
cache: gradle
|
||||||
|
|
||||||
- name: Check with Error Prone
|
|
||||||
if: matrix.java == '11'
|
|
||||||
run: ./gradlew errorprone clean -Dtoolchain=${{ matrix.toolchain }}
|
|
||||||
|
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew build -Dtoolchain=${{ matrix.toolchain }}
|
run: ./gradlew build -Dtoolchain=${{ matrix.toolchain }}
|
||||||
|
|
||||||
- name: Upload artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: matrix.java == '11'
|
|
||||||
with:
|
|
||||||
name: FlatLaf-build-artifacts
|
|
||||||
path: |
|
|
||||||
flatlaf-*/build/libs
|
|
||||||
flatlaf-*/flatlaf-*/build/libs
|
|
||||||
!**/*-javadoc.jar
|
|
||||||
!**/*-sources.jar
|
|
||||||
|
|
||||||
|
|
||||||
snapshot:
|
snapshot:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build
|
needs: build-on
|
||||||
if: |
|
if: |
|
||||||
github.event_name == 'push' &&
|
github.event_name == 'push' &&
|
||||||
(github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/heads/develop-' )) &&
|
(github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/heads/develop-' )) &&
|
||||||
@@ -98,7 +114,7 @@ jobs:
|
|||||||
|
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build
|
needs: build-on
|
||||||
if: |
|
if: |
|
||||||
github.event_name == 'push' &&
|
github.event_name == 'push' &&
|
||||||
startsWith( github.ref, 'refs/tags/' ) &&
|
startsWith( github.ref, 'refs/tags/' ) &&
|
||||||
|
|||||||
23
.github/workflows/natives.yml
vendored
23
.github/workflows/natives.yml
vendored
@@ -21,27 +21,24 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- windows
|
- windows-latest
|
||||||
- macos
|
- macos-latest
|
||||||
- ubuntu
|
- ubuntu-latest
|
||||||
|
- ubuntu-24.04-arm
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}-latest
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: gradle/actions/wrapper-validation@v4
|
- uses: gradle/actions/wrapper-validation@v4
|
||||||
|
|
||||||
- name: install libxt-dev
|
- name: install libxt-dev and libgtk-3-dev
|
||||||
if: matrix.os == 'ubuntu'
|
if: matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm'
|
||||||
run: sudo apt install libxt-dev
|
run: sudo apt install libxt-dev libgtk-3-dev
|
||||||
|
|
||||||
- name: install libgtk-3-dev
|
|
||||||
if: matrix.os == 'ubuntu'
|
|
||||||
run: sudo apt install libgtk-3-dev
|
|
||||||
|
|
||||||
- name: Download libgtk-3.so for arm64
|
- name: Download libgtk-3.so for arm64
|
||||||
if: matrix.os == 'ubuntu'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
working-directory: flatlaf-natives/flatlaf-natives-linux/lib/aarch64
|
working-directory: flatlaf-natives/flatlaf-natives-linux/lib/aarch64
|
||||||
run: |
|
run: |
|
||||||
pwd
|
pwd
|
||||||
@@ -54,7 +51,7 @@ jobs:
|
|||||||
ls -l
|
ls -l
|
||||||
|
|
||||||
- name: install g++-aarch64-linux-gnu
|
- name: install g++-aarch64-linux-gnu
|
||||||
if: matrix.os == 'ubuntu'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
run: sudo apt install g++-aarch64-linux-gnu
|
run: sudo apt install g++-aarch64-linux-gnu
|
||||||
|
|
||||||
- name: Setup Java 11
|
- name: Setup Java 11
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ FlatLaf Change Log
|
|||||||
|
|
||||||
#### New features and improvements
|
#### New features and improvements
|
||||||
|
|
||||||
|
- macOS: Re-enabled rounded popup border (see PR #772) on macOS 14.4+ (was
|
||||||
|
disabled in 3.5.x).
|
||||||
- CheckBox: Support styling indeterminate state of
|
- 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).
|
[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)
|
(PR #936; issue #919)
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ public interface FlatSystemProperties
|
|||||||
* (requires Windows 11 or macOS)
|
* (requires Windows 11 or macOS)
|
||||||
* <p>
|
* <p>
|
||||||
* <strong>Allowed Values</strong> {@code false} and {@code true}<br>
|
* <strong>Allowed Values</strong> {@code false} and {@code true}<br>
|
||||||
* <strong>Default</strong> {@code true}; except on macOS 14.4+ where it is {@code false}
|
* <strong>Default</strong> {@code true}; except in FlatLaf 3.5.x on macOS 14.4+ where it was {@code false}
|
||||||
*
|
*
|
||||||
* @since 3.5.2
|
* @since 3.5.2
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -365,14 +365,8 @@ public class FlatPopupFactory
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isMacOSBorderSupported() {
|
private static boolean isMacOSBorderSupported() {
|
||||||
// do not use rounded border on macOS 14.4+ because it may freeze the application
|
|
||||||
// and crash the macOS WindowServer process (reports vary from Finder restarts to OS restarts)
|
|
||||||
// https://github.com/apache/netbeans/issues/7560#issuecomment-2226439215
|
|
||||||
// https://github.com/apache/netbeans/issues/6647#issuecomment-2070124442
|
|
||||||
boolean isMacOS_14_4_orLater = (SystemInfo.osVersion >= SystemInfo.toVersion( 14, 4, 0, 0 ));
|
|
||||||
|
|
||||||
return SystemInfo.isMacOS &&
|
return SystemInfo.isMacOS &&
|
||||||
FlatSystemProperties.getBoolean( FlatSystemProperties.USE_ROUNDED_POPUP_BORDER, !isMacOS_14_4_orLater ) &&
|
FlatSystemProperties.getBoolean( FlatSystemProperties.USE_ROUNDED_POPUP_BORDER, true ) &&
|
||||||
FlatNativeMacLibrary.isLoaded();
|
FlatNativeMacLibrary.isLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-linux-arm64.so
Normal file → Executable file
BIN
flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-linux-arm64.so
Normal file → Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -102,10 +102,13 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
[FlatJNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
|
[FlatJNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
|
||||||
|
JNI_COCOA_TRY()
|
||||||
|
|
||||||
nsWindow.hasShadow = YES;
|
nsWindow.hasShadow = YES;
|
||||||
nsWindow.contentView.wantsLayer = YES;
|
nsWindow.contentView.wantsLayer = YES;
|
||||||
nsWindow.contentView.layer.cornerRadius = radius;
|
nsWindow.contentView.layer.cornerRadius = radius;
|
||||||
nsWindow.contentView.layer.masksToBounds = YES;
|
nsWindow.contentView.layer.masksToBounds = YES;
|
||||||
|
nsWindow.contentView.layer.opaque = NO;
|
||||||
|
|
||||||
nsWindow.contentView.layer.borderWidth = borderWidth;
|
nsWindow.contentView.layer.borderWidth = borderWidth;
|
||||||
if( borderWidth > 0 ) {
|
if( borderWidth > 0 ) {
|
||||||
@@ -122,6 +125,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW
|
|||||||
|
|
||||||
[nsWindow.contentView.layer removeAllAnimations];
|
[nsWindow.contentView.layer removeAllAnimations];
|
||||||
[nsWindow invalidateShadow];
|
[nsWindow invalidateShadow];
|
||||||
|
|
||||||
|
JNI_COCOA_CATCH()
|
||||||
}];
|
}];
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -159,6 +164,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW
|
|||||||
WindowData* windowData = getWindowData( nsWindow, true );
|
WindowData* windowData = getWindowData( nsWindow, true );
|
||||||
|
|
||||||
[FlatJNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
|
[FlatJNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
|
||||||
|
JNI_COCOA_TRY()
|
||||||
|
|
||||||
// NSLog( @"\n%@\n\n", [nsWindow.contentView.superview _subtreeDescription] );
|
// NSLog( @"\n%@\n\n", [nsWindow.contentView.superview _subtreeDescription] );
|
||||||
|
|
||||||
// add/remove toolbar
|
// add/remove toolbar
|
||||||
@@ -237,6 +244,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW
|
|||||||
windowData.didExitFullScreenObserver = nil;
|
windowData.didExitFullScreenObserver = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNI_COCOA_CATCH()
|
||||||
}];
|
}];
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
Reference in New Issue
Block a user