On Mon, 8 May 2023 23:35:19 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>> On Linux systems, we rely on XGrabPointer (X11 API) to capture mouse input >> and dismiss popup menus on mouse clicks outside the popup menu. >> Unfortunately, on Linux systems using the >> [Wayland](https://wayland.freedesktop.org/) session this only works inside >> [XWayland(Wayland's X11 server >> implementation)](https://wayland.freedesktop.org/xserver.html). >> This means if a user clicks on a part of the screen not controlled by >> XWayland (e.g. window decorations, other non X11 applications) the popup >> menu will not be hidden. >> >> As a workaround, we can hide this menu when the parent popup menu window >> loses focus. >> However, it does have its drawbacks, which should be described in the >> documentation.The focus does not change when clicking on the header of its >> own parent window or on non-focusable windows, .e.g., empty space in system >> dock, so in this case the popup menu is not hidden. >> >> Third-party applications use a similar approach. >> >> I also have doubts about the need to change the documentation, as I can't >> find where it is described that the popup menu should be hidden when clicked >> outside the menu. >> >> CSR: https://bugs.openjdk.org/browse/JDK-8307529 > > src/java.desktop/share/classes/java/awt/PopupMenu.java line 46: > >> 44: * call {@code show} on that {@code PopupMenu}. >> 45: * >> 46: * @implNote On Linux systems using Wayland, the popup menu may not be >> dismissed > > I guess the XWayland is affected, but implementation of the toolkit for > Wayland will not have this issue? It should, and this is another point about not changing the documentation. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13830#discussion_r1188704947