diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2015-12-15 18:14:25 +0800 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2016-05-01 21:11:27 +0800 |
commit | c2643ba5aceb1f6cb5da62882c98a2b1eed6e6f0 (patch) | |
tree | 647053f7b5767f9dfe09a2e712570a31ffcbc0ea /src/wayland/meta-wayland-surface.h | |
parent | b3ba8e897eb90eff0b3521364f5ed4093e48cde7 (diff) | |
download | mutter-c2643ba5aceb1f6cb5da62882c98a2b1eed6e6f0.tar.gz |
wayland: Keep wl_shell_surface state during loss of window
It has been common practice (in QT5 for example) to set
wl_shell_surface state at situations where mutter will have destroyed
the MetaWindow. This commit keeps track of the relevant state
separately from MetaWindow, and synchronizes when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=757623
https://bugzilla.gnome.org/show_bug.cgi?id=763431
Diffstat (limited to 'src/wayland/meta-wayland-surface.h')
-rw-r--r-- | src/wayland/meta-wayland-surface.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/wayland/meta-wayland-surface.h b/src/wayland/meta-wayland-surface.h index cf6b79b35..190ee1f14 100644 --- a/src/wayland/meta-wayland-surface.h +++ b/src/wayland/meta-wayland-surface.h @@ -156,6 +156,16 @@ struct _MetaWaylandDragDestFuncs MetaWaylandSurface *surface); }; +typedef enum +{ + META_WL_SHELL_SURFACE_STATE_NONE, + META_WL_SHELL_SURFACE_STATE_TOPLEVEL, + META_WL_SHELL_SURFACE_STATE_POPUP, + META_WL_SHELL_SURFACE_STATE_TRANSIENT, + META_WL_SHELL_SURFACE_STATE_FULLSCREEN, + META_WL_SHELL_SURFACE_STATE_MAXIMIZED, +} MetaWlShellSurfaceState; + struct _MetaWaylandSurface { GObject parent; @@ -221,6 +231,23 @@ struct _MetaWaylandSurface struct wl_listener destroy_listener; } popup; + /* wl_shell_surface */ + struct { + MetaWlShellSurfaceState state; + + char *title; + char *wm_class; + + gboolean pending_popup; + MetaWaylandSurface *parent_surface; + GList *children; + + MetaWaylandSeat *popup_seat; + + int x; + int y; + } wl_shell; + /* wl_subsurface stuff. */ struct { MetaWaylandSurface *parent; |