From 5fbbd2f80edb13889267a7af6e75d2d47b92536d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 26 Feb 2020 13:23:00 +0100 Subject: [PATCH] wayland: track window maximized state --- wayland.c | 7 +++++-- wayland.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/wayland.c b/wayland.c index f8244d53..89c20745 100644 --- a/wayland.c +++ b/wayland.c @@ -460,6 +460,7 @@ xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel, { bool is_activated = false; bool is_fullscreen = false; + bool is_maximized = false; #if defined(LOG_ENABLE_DBG) && LOG_ENABLE_DBG char state_str[2048]; @@ -480,11 +481,11 @@ xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel, enum xdg_toplevel_state *state; wl_array_for_each(state, states) { switch (*state) { - case XDG_TOPLEVEL_STATE_ACTIVATED: is_activated = true; break; + case XDG_TOPLEVEL_STATE_ACTIVATED: is_activated = true; break; case XDG_TOPLEVEL_STATE_FULLSCREEN: is_fullscreen = true; break; + case XDG_TOPLEVEL_STATE_MAXIMIZED: is_maximized = true; break; case XDG_TOPLEVEL_STATE_RESIZING: - case XDG_TOPLEVEL_STATE_MAXIMIZED: case XDG_TOPLEVEL_STATE_TILED_LEFT: case XDG_TOPLEVEL_STATE_TILED_RIGHT: case XDG_TOPLEVEL_STATE_TILED_TOP: @@ -543,6 +544,7 @@ xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel, win->configure.is_activated = is_activated; win->configure.is_fullscreen = is_fullscreen; + win->configure.is_maximized = is_maximized; win->configure.width = width; win->configure.height = height; } @@ -571,6 +573,7 @@ xdg_surface_configure(void *data, struct xdg_surface *xdg_surface, struct terminal *term = win->term; win->is_configured = true; + win->is_maximized = win->configure.is_maximized; if (win->is_fullscreen != win->configure.is_fullscreen && win->use_csd == CSD_YES) { if (win->configure.is_fullscreen) diff --git a/wayland.h b/wayland.h index f7961552..a634524b 100644 --- a/wayland.h +++ b/wayland.h @@ -112,9 +112,11 @@ struct wl_window { bool is_configured; bool is_fullscreen; + bool is_maximized; struct { bool is_activated; bool is_fullscreen; + bool is_maximized; int width; int height; } configure;