summaryrefslogtreecommitdiff
path: root/src/wayland/meta-wayland-surface.h
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2015-12-15 18:14:25 +0800
committerJonas Ådahl <jadahl@gmail.com>2016-05-01 21:11:27 +0800
commitc2643ba5aceb1f6cb5da62882c98a2b1eed6e6f0 (patch)
tree647053f7b5767f9dfe09a2e712570a31ffcbc0ea /src/wayland/meta-wayland-surface.h
parentb3ba8e897eb90eff0b3521364f5ed4093e48cde7 (diff)
downloadmutter-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.h27
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;