On Wed, 19 Nov 2025 12:34:01 GMT, Prasanta Sadhukhan <[email protected]>
wrote:
>> modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line 974:
>>
>>> 972: getScene().getFocusOwner() != null &&
>>> 973: getScene().getFocusOwner().isFocused()) {
>>> 974: hStagePeer.focusUngrab();
>>
>> This can be reverted. `stagePeer` is only accessed on the FX thread.
>
> `stagePeer` is accessed in `processMouseEvent`, `sendResizeEventToFX`,
> `sendMoveEventToFX`, `sendFocusEventToFX `in EDT so I did that.
> But it seems in this particular method, it is only accessed in FX thread as
> is mentioned so reverted..
Right, I only meant this specific instance (and the usage later on in this same
lambda). It looks good now.
>> modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line
>> 1078:
>>
>>> 1076: stagePeer = embeddedStage;
>>> 1077: var hStagePeer = stagePeer;
>>> 1078: if (hStagePeer == null) {
>>
>> If this is always invoked from the FX thread, you don't need to locally
>> capture the peers.
>
> but down below it is accessed in EDT so I did the local capture
Yes, you are right.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2542119249
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2542126656