RFR: 8343336: Add persistentScrollBars preference [v4]

Kevin Rushforth kcr at openjdk.org
Tue Nov 26 21:48:46 UTC 2024


On Fri, 1 Nov 2024 23:39:51 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> This PR adds another accessibility preference that is available on all supported desktop platforms:
>> 
>> 1. **Windows**: Settings -> Accessibility -> Visual Effects -> Always show scroll bars
>> 2. **macOS**: System Settings -> Appearance -> Show scroll bars
>> 3. **Ubuntu**: Settings -> Accessibility -> Seeing -> Always show scroll bars
>> 
>> When the OS setting is changed, all platforms report updates that can be observed in JavaFX.
>> The manual test application `test/manual/events/PlatformPreferencesChangedTest` can be used to test the feature.
>
> Michael Strauß has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge branch 'master' into feature/accessibility-hide-scrollbars
>  - add platform keys to javadoc
>  - Change reducedScrollBars to persistentScrollBars
>  - Add reducedScrollBars preference

Looks good. In addition to reviewing the code and the docs, I tested it on all platforms. On Linux I tested it on Ubuntu 24.04  and on a _very_ old 16.04. There is a minor bug on 16.04 (a warning printed), but it could be done as a follow-up if you prefer.

I reviewed the CSR, so it is ready to finalize.

modules/javafx.graphics/src/main/native-glass/gtk/PlatformSupport.cpp line 126:

> 124: 
> 125:         gboolean overlayScrolling = true;
> 126:         g_object_get(settings, "gtk-overlay-scrolling", &overlayScrolling, NULL);

This causes a warning to be printed during initialization on a very old Ubuntu system (16.04) when running any application:


GLib-GObject-WARNING **: g_object_get_valist: object class 'GtkSettings' has no property named 'gtk-overlay-scrolling'


I see from the docs that this setting was added in GTK 3.24.9. Perhaps a runtime check is in order? It could be done as a follow-up bug since it is just a warning. It correctly reports `GTK.overlay_scrolling=true` and `persistentScrollBars=false`.

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

Marked as reviewed by kcr (Lead).

PR Review: https://git.openjdk.org/jfx/pull/1618#pullrequestreview-2462637438
PR Review Comment: https://git.openjdk.org/jfx/pull/1618#discussion_r1859201109


More information about the openjfx-dev mailing list