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

Alexander Zvegintsev azvegint at openjdk.org
Tue May 9 18:01:31 UTC 2023


> 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>

Alexander Zvegintsev has updated the pull request incrementally with one additional commit since the last revision:

  undo documentation changes

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/13830/files
  - new: https://git.openjdk.org/jdk/pull/13830/files/ca4bc8b5..becb92d3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13830&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13830&range=00-01

  Stats: 8 lines in 2 files changed: 0 ins; 8 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/13830.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13830/head:pull/13830

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



More information about the client-libs-dev mailing list