On Fri, 5 May 2023 12:27:04 GMT, Alexander Zvegintsev <azveg...@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? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13830#discussion_r1187986406