On Fri, 28 Feb 2025 18:34:31 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> modules/javafx.controls/src/main/java/javafx/scene/chart/Chart.java line 561:
>> 
>>> 559:                 accessibilityActive = winProp; // keep the reference 
>>> so it won't get gc
>>> 560: 
>>> 561:                 // lambda cannot be used in place of a ChangeListener 
>>> in removeListener()
>> 
>> Why not use a Subscription then? It seems tailor-made for what you are 
>> trying to do.
>
> I don't know how to use Subscription in this case.  
> This does not work:
> 
> 
>                 ObservableValue<Window> winProp = 
> sceneProperty().flatMap(Scene::windowProperty);
>                 accessibilityActive = winProp; // keep the reference so it 
> won't get gc
>                 Subscription sub = winProp.subscribe((win) -> {
>                     if (win != null) {
>                         if (accessibilityActive == winProp) {
>                             accessibilityActive = null;
>                         }
>                         if (isAccessibilityActive()) {
>                             handleAccessibilityActive(true);
>                         }
>                         //winProp.removeListener(this);
>                         sub.unsubscribe(); <-- COMPILE ERROR
>                     }
>                 });

@hjohn could you help here please?  How could we use Subscription in a 
situation when it has to be unsubscribed from within the lambda?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1697#discussion_r1978113628

Reply via email to