[PATCH weston v4 3/7] libweston: Make weston_seat release safe

Pekka Paalanen ppaalanen at gmail.com
Thu Feb 15 11:27:40 UTC 2018


On Thu, 15 Feb 2018 13:07:09 +0200
Alexandros Frantzis <alexandros.frantzis at collabora.com> wrote:

> Ensure the server can safely handle client requests for wl_seat resource
> that have become inert due to weston_seat object release and subsequent
> destruction.
> 
> The clean-up involves, among other things, unsetting the destroyed
> weston_seat object from the user data of wl_seat resources, and handling
> this NULL user data case where required.
> 
> The list of sites extracting and using weston_seat object from wl_seat
> resources which were audited for this patch are:
> 
> Legend:
> N/A = Not Applicable (not implemented by weston)
> FIXED = Fixed in the commit
> OK = Already works correctly
> 
> == keyboard_shortcuts_inhibit_unstable_v1 ==
> [N/A] zwp_keyboard_shortcuts_inhibit_manager_v1.inhibit_shortcuts
> == tablet_input_unstable_v{1,2} ==
> [N/A] zwp_tablet_manager_v{1,2}.get_tablet_seat
> == text_input_unstable_v1 ==
> [FIXED] zwp_text_input_v1.activate
> [FIXED] zwp_text_input_v1.deactivate
> == wl_data_device ==
> [FIXED] wl_data_device_manager.get_data_device
> [OK] wl_data_device.start_drag
> [FIXED] wl_data_device.set_selection
> [OK] wl_data_device.release
> == wl_shell ==
> [FIXED] wl_shell_surface.move
> [FIXED] wl_shell_surface.resize
> [FIXED] wl_shell_surface.set_popup
> == xdg_shell and xdg_shell_unstable_v6 ==
> [FIXED] xdg_toplevel.show_window_menu
> [FIXED] xdg_toplevel.move
> [FIXED] xdg_toplevel.resize
> [FIXED] xdg_popup.grab
> == xdg_shell_unstable_v5 ==
> [FIXED] xdg_shell.get_xdg_popup
> [FIXED] xdg_surface.show_window_menu
> [FIXED] xdg_surface.move
> [FIXED] xdg_surface.resize
> 
> Signed-off-by: Alexandros Frantzis <alexandros.frantzis at collabora.com>
> Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
> ---
> Changes in v4:
>  - Add seat == NULL in assert in weston_desktop_seat_popup_grab_start.
>  - Move check for NULL seat after checking for toplevel configured in
>    weston_desktop_xdg_toplevel_protocol_{show_window_menu, move, resize}
> Changes in v3:
>  - Drop xdg_shell v5 changes since support for v5 has been removed.
>  - Handle inert seats more transparently in libweston-desktop, by ensuring
>    that the weston_desktop_seat_from_seat,
>    weston_desktop_seat_popup_grab_get_topmost_surface, and
>    weston desktop_seat_popup_grab_start functions gracefully handle NULL
>    seat pointer arguments internally.
>        
> Changes in v2:
>  - Properly create inert resources in seat_get_pointer/touch/keyboard.
>  - Ensure all sites which have a wl_seat input resource can deal
>    with inert resources.
> 
>  compositor/text-backend.c        |  8 ++++--
>  libweston-desktop/seat.c         | 18 ++++++++----
>  libweston-desktop/wl-shell.c     |  9 +++++-
>  libweston-desktop/xdg-shell-v6.c | 24 ++++++++++++++++
>  libweston/data-device.c          | 15 ++++++----
>  libweston/input.c                | 61 ++++++++++++++++++++++++++++------------
>  6 files changed, 103 insertions(+), 32 deletions(-)
> 

Very good, pushed the whole series:
   c6e2942f..8b964bca  master -> master


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180215/53bea2ae/attachment.sig>


More information about the wayland-devel mailing list