On Mon, 7 Oct 2024 15:27:21 GMT, Michael Strauß <mstra...@openjdk.org> wrote:

>> This PR adds the `Platform.Preferences.reducedMotion` and 
>> `Platform.Preferences.reducedTransparency` accessibility preferences:
>> 
>> interface Preferences {
>>     /**
>>      * Specifies whether applications should minimize the amount of 
>> non-essential animations,
>>      * reducing discomfort for users who experience motion sickness or 
>> vertigo.
>>      * <p>
>>      * If the platform does not report this preference, this property 
>> defaults to {@code false}.
>>      *
>>      * @return the {@code reducedMotion} property
>>      * @defaultValue {@code false}
>>      * @since 24
>>      */
>>     ReadOnlyBooleanProperty reducedMotionProperty();
>> 
>>     /**
>>      * Specifies whether applications should minimize the amount of 
>> transparent or translucent
>>      * layer effects, which can help to increase contrast and readability 
>> for some users.
>>      * <p>
>>      * If the platform does not report this preference, this property 
>> defaults to {@code false}.
>>      *
>>      * @return the {@code reducedTransparency} property
>>      * @defaultValue {@code false}
>>      * @since 24
>>      */
>>     ReadOnlyBooleanProperty reducedTransparencyProperty();
>> 
>>     ...
>> }
>> 
>> 
>> On Windows, these preferences correspond to "Transparency effects" and 
>> "Animation effects" in the system settings:
>> <img 
>> src="https://github.com/user-attachments/assets/b286850d-ebbc-444c-9c09-5380f97d0e91";
>>  width="400" >
>> 
>> On macOS, these preferences correspond to "Reduce motion" and "Reduce 
>> transparency" in the system settings:
>> <img 
>> src="https://github.com/user-attachments/assets/4c7b92f8-0cd9-4d1f-91df-40cb449f91ff";
>>  width="400" >
>> 
>> On Linux, the `reducedMotion` preference corresponds to 
>> `gtk-enable-animations`. On my Ubuntu 24.04 system, GTK3 does not pick up 
>> the "Settings / Accessibility / Reduce Animations" system setting, and 
>> therefore GTK always reports `gtk-enable-animations == true`. Changing the 
>> preference requires manually editing `etc/gtk-3.0/settings.ini`. The 
>> `reducedTransparency` preference has no corresponding GTK setting.
>
> Michael Strauß has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   seal Platform.Preferences

modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 586:

> 584:      * @since 22
> 585:      */
> 586:     public sealed interface Preferences extends ObservableMap<String, 
> Object>

is there any way we can convert this to a regular class here, so it can be 
inspected?

what's the point of declaring an interface just to allow for one possible 
implementation?

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1592#discussion_r1792570911

Reply via email to