diff options
author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-11-21 14:16:55 -0600 |
---|---|---|
committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-11-21 14:16:55 -0600 |
commit | 972e3f3050be85ab324ea1216f545871efe07d1e (patch) | |
tree | a490d4aaf366b573711f2035dc836ff5a52165a6 /client.h | |
parent | 569f55401693c9d2850f056f20ca2bd5bd5977fd (diff) | |
parent | fcb3fa4e907d1a7733ddaebc1774f61490b9b640 (diff) |
Merge branch 'wlroots-next' into main
Diffstat (limited to 'client.h')
-rw-r--r-- | client.h | 29 |
1 files changed, 20 insertions, 9 deletions
@@ -45,7 +45,7 @@ client_get_parent(Client *c) return client_from_wlr_surface(c->surface.xwayland->parent->surface); #endif if (c->surface.xdg->toplevel->parent) - return client_from_wlr_surface(c->surface.xdg->toplevel->parent->surface); + return client_from_wlr_surface(c->surface.xdg->toplevel->parent->base->surface); return NULL; } @@ -57,8 +57,7 @@ client_get_size_hints(Client *c, struct wlr_box *max, struct wlr_box *min) struct wlr_xdg_toplevel_state *state; #ifdef XWAYLAND if (client_is_x11(c)) { - struct wlr_xwayland_surface_size_hints *size_hints; - size_hints = c->surface.xwayland->size_hints; + xcb_size_hints_t *size_hints = c->surface.xwayland->size_hints; if (size_hints) { max->width = size_hints->max_width; max->height = size_hints->max_height; @@ -102,7 +101,20 @@ client_activate_surface(struct wlr_surface *s, int activated) if (wlr_surface_is_xdg_surface(s) && (surface = wlr_xdg_surface_from_wlr_surface(s)) && surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) - wlr_xdg_toplevel_set_activated(surface, activated); + wlr_xdg_toplevel_set_activated(surface->toplevel, activated); +} + +static inline uint32_t +client_set_bounds(Client *c, int32_t width, int32_t height) +{ +#ifdef XWAYLAND + if (client_is_x11(c)) + return 0; +#endif + if (c->surface.xdg->client->shell->version >= + XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION) + return wlr_xdg_toplevel_set_bounds(c->surface.xdg->toplevel, width, height); + return 0; } static inline void @@ -151,7 +163,6 @@ client_get_title(Client *c) return c->surface.xdg->toplevel->title; } - static inline int client_is_float_type(Client *c) { @@ -226,7 +237,7 @@ client_send_close(Client *c) return; } #endif - wlr_xdg_toplevel_send_close(c->surface.xdg); + wlr_xdg_toplevel_send_close(c->surface.xdg->toplevel); } static inline void @@ -238,7 +249,7 @@ client_set_fullscreen(Client *c, int fullscreen) return; } #endif - wlr_xdg_toplevel_set_fullscreen(c->surface.xdg, fullscreen); + wlr_xdg_toplevel_set_fullscreen(c->surface.xdg->toplevel, fullscreen); } static inline uint32_t @@ -251,7 +262,7 @@ client_set_size(Client *c, uint32_t width, uint32_t height) return 0; } #endif - return wlr_xdg_toplevel_set_size(c->surface.xdg, width, height); + return wlr_xdg_toplevel_set_size(c->surface.xdg->toplevel, width, height); } static inline void @@ -261,7 +272,7 @@ client_set_tiled(Client *c, uint32_t edges) if (client_is_x11(c)) return; #endif - wlr_xdg_toplevel_set_tiled(c->surface.xdg, edges); + wlr_xdg_toplevel_set_tiled(c->surface.xdg->toplevel, edges); } static inline struct wlr_surface * |