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 * | 
