xdg-shell-v6: don't destroy role resources on unmap

The motivation for this is:
- `get_popup` and `get_toplevel` allocate role-specific resources.
- On the first non-null commit, the surface gets mapped.
- On a null commit, the surface gets unmapped. It can be mapped
  again with a non-null commit.
- When the role object (xdg-toplevel or xdg-popup) is
  destroyed, the surface is unmapped and role-specific resources
  are destroyed. The client can call `get_popup` or `get_toplevel`
  again on that surface.
- When the xdg-surface object is destroyed, the surface is
  unmapped, role-specific resources are destroyed and the surface
  itself is destroyed.
This commit is contained in:
emersion 2018-03-26 18:35:36 -04:00
parent 891610081f
commit 5233801530
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
3 changed files with 53 additions and 28 deletions

View file

@ -106,6 +106,7 @@ struct wlr_xdg_surface {
uint32_t configure_next_serial;
struct wl_list configure_list;
// Only for toplevel
char *title;
char *app_id;

View file

@ -106,6 +106,7 @@ struct wlr_xdg_surface_v6 {
uint32_t configure_next_serial;
struct wl_list configure_list;
// Only for toplevel
char *title;
char *app_id;