On Wed, 12 Feb 2025 20:15:03 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
> ## Root Cause > > The ContextMenu (PopupWindow) cannot be shown in a background thread. > > ## Solution > > Bail out of `show()` if in a background thread. I'm not convinced that this is the right solution. `Node` says: * Node objects may be constructed and modified on any thread as long they are * not yet attached to a {@link Scene} in a {@link Window} that is * {@link Window#isShowing showing}. It's not clear to me that invoking actions on a node should count as "modifying", and there is no specification that says it's okay to invoke actions on a non-UI thread. I'd rather have actions throw an exception if they are invoked on a background thread, rather than silently not doing anything at all. It's one thing to configure (i.e. modify) properties of a node, and then show it in the scene graph; it's another thing to tell it to do something it can't do in its current state. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1709#issuecomment-2655033677