Installing the custom decorations may cause the window to be resized
as Cocoa tries to compensate for the removal of the titlebar. Hence,
any previously set size for the window wil be incorrect. We circumvent
this issue by restoring the window bounds after the installation is
completed.
Relates to #292
Both are scheduled for removal and only occur because
the respective code replicates JDK classes. All occurrences
aren't strictly necessary hence can be removed.
They were very cluttered before. Adding some dsl functions
help to condense the information and reduce repetition.
This also fixes the failing errorprone CI.
Currently, the JDK doesn't correctly report the current operating system.
For now, we query the value ourselves using native code. This will be updated
once the JDK backport is available:
https://bugs.openjdk.java.net/browse/JDK-8274840
When running on Windows 11 don't need to extend the client frame
anymore. This allows us to give back the titlebar space to the window manager.
Hovering over the maximize button now yields in the snapping popup to appear.
This allows us to move the dependency versions back into
gradle.properties so version for plugins and dependencies are declared
in a centralized way.
This commit also removes the legacy macOS framework dependencies.
The new version provides an easier and more versatile API. The old one still remains
available as some uis rely on some more involved quirks of the old implementation.
However, the new and old version share the same animation thread.
The fix for non-transparent tooltips on X11 surfaces involved disabling double buffering
for the component hierarchy. Somehow this doesn't seem to work on Java 8. Luckily it is
a version where we are free to apply the reflection hack to fix it.
This fixes#274
Previously all boolean client properties installed by a Theme
were never overwritten if a different theme has different
values for them. We now parse non-boolean values when retrieving
a boolean property and properly mark the installed value as an
UIResource.
This only changes os specific properties supplied by the Theme.
It won't load the os dependent base laf or decorations provider
as they generally won't be available. Also some properties
may be different from the platform default as they are set the
first time the laf is installed.
We should give the os enough space outside the frame to handle the
resize area itself.
This avoids issues with scrollbars at the window edge etc.
Fixes#266
It was only used on Windows, where it is currently always
an effective no-op as the insets were adjusted by zero
values. In fact with non-zero adjustments the result was
an incorrectly sized window.