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.
> 
> <del>CSR: https://bugs.openjdk.org/browse/JDK-8307529</del>

This pull request has now been integrated.

Changeset: 3d550f74
Author:    Alexander Zvegintsev <azveg...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/3d550f748521443dc2e148aa4f786060419f1113
Stats:     202 lines in 6 files changed: 179 ins; 0 del; 23 mod

8280993: [XWayland] Popup is not closed on click outside of area controlled by 
XWayland

Reviewed-by: prr

-------------

PR: https://git.openjdk.org/jdk/pull/13830

Reply via email to