Skip to content
Snippets Groups Projects
  1. Jul 19, 2021
  2. May 28, 2021
  3. Apr 04, 2021
  4. Feb 28, 2021
  5. Nov 04, 2020
    • Marius Vlad's avatar
      kiosk-shell: Keep track of seats created and destroy them at end · 092130c4
      Marius Vlad authored
      
      kiosk_shell_destroy() will free up weston_desktop, but still keeping
      listeners set-up (keyboard/seat/caps), which will fire
      when the the compositor is stopped/shutdown by clients still connected.
      
      This patch maintains a list of seats and uses it to remove any listeners
      when calling kiosk_shell_destroy(). desktop-shell and ivi-shell do not
      appear to be using weston_desktop_destroy() in their respective destroy
      parts.
      
      This avoids an illegal access happening when calling one of the
      listeners, after weston_desktop has been free'ed, like the following:
      
      ==2002==    at 0x10F3F8FD: weston_desktop_get_display (libweston-desktop.c:125)
      ==2002==    by 0x10F450A7: weston_desktop_xdg_surface_schedule_configure (xdg-shell.c:1022)
      ==2002==    by 0x10F44793: weston_desktop_xdg_toplevel_set_activated (xdg-shell.c:643)
      ==2002==    by 0x10F41AA5: weston_desktop_surface_set_activated (surface.c:468)
      ==2002==    by 0x10F32E7E: kiosk_shell_seat_handle_keyboard_focus (kiosk-shell.c:329)
      ==2002==    by 0x4A726A7: wl_signal_emit (wayland-server-core.h:478)
      ==2002==    by 0x4A75BD1: weston_keyboard_set_focus (input.c:1586)
      ==2002==    by 0x4A776FE: notify_keyboard_focus_out (input.c:2314)
      ==2002==    by 0x5902BC1: udev_seat_destroy (libinput-seat.c:469)
      ==2002==    by 0x59028C5: udev_input_destroy (libinput-seat.c:375)
      ==2002==    by 0x58F0449: drm_destroy (drm.c:2571)
      ==2002==    by 0x4A6EE39: weston_compositor_destroy (compositor.c:7814)
      ==2002==  Address 0x10bd1780 is 0 bytes inside a block of size 152 free'd
      ==2002==    at 0x48399AB: free (vg_replace_malloc.c:538)
      ==2002==    by 0x10F3F8DA: weston_desktop_destroy (libweston-desktop.c:112)
      ==2002==    by 0x10F34357: kiosk_shell_destroy (kiosk-shell.c:1009)
      ==2002==    by 0x4A5F618: wl_signal_emit (wayland-server-core.h:478)
      ==2002==    by 0x4A6EE06: weston_compositor_destroy (compositor.c:7809)
      ==2002==    by 0x4855548: wet_main (main.c:3420)
      ==2002==    by 0x109154: main (executable.c:33)
      ==2002==  Block was alloc'd at
      ==2002==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
      ==2002==    by 0x10F3F681: zalloc (zalloc.h:38)
      ==2002==    by 0x10F3F724: weston_desktop_create (libweston-desktop.c:65)
      ==2002==    by 0x10F34458: wet_shell_init (kiosk-shell.c:1045)
      ==2002==    by 0x484F83D: wet_load_shell (main.c:924)
      ==2002==    by 0x48552D3: wet_main (main.c:3361)
      ==2002==    by 0x109154: main (executable.c:33)
      
      Signed-off-by: default avatarMarius Vlad <marius.vlad@collabora.com>
      092130c4
  6. Jul 30, 2020
    • Alexandros Frantzis's avatar
      kiosk-shell: Introduce kiosk/fullscreen shell for desktop apps · 87c1679a
      Alexandros Frantzis authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      kiosk-shell is fullscreen shell for apps that use the xdg-shell
      protocol. The goal is to make life easier for people shipping embedded
      devices with simple fullscreen shell requirements, and reduce the
      proliferation of desktop-shell hacks.
      
      Top level surfaces are made fullscreen, whereas dialogs are placed on
      top in the center of the output and retain their natural sizes. Dialogs
      can be moved and (un)maximized, but resizing is currently not supported.
      
      An app can be directed to a particular output by populating the
      "app-ids" field with the app's XDG app id, in the relevant
      "[output]" section in the weston config file.
      
      Fixes: #277
      
      Signed-off-by: default avatarAlexandros Frantzis <alexandros.frantzis@collabora.com>
      87c1679a
Loading