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

Reply via email to