mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-21 14:42:25 +00:00
xdg-shell: add wlr_xdg_toplevel_configure()
A struct wlr_xdg_toplevel_configure is passed in with the whole state. This makes it a lot clearer that the size and WM state are always sent to the client.
This commit is contained in:
parent
8582b45c9e
commit
098cb9b7a3
@ -374,6 +374,12 @@ struct wlr_xdg_positioner *wlr_xdg_positioner_from_resource(
|
||||
*/
|
||||
void wlr_xdg_surface_ping(struct wlr_xdg_surface *surface);
|
||||
|
||||
/**
|
||||
* Configure the toplevel. Returns the associated configure serial.
|
||||
*/
|
||||
uint32_t wlr_xdg_toplevel_configure(struct wlr_xdg_toplevel *toplevel,
|
||||
const struct wlr_xdg_toplevel_configure *configure);
|
||||
|
||||
/**
|
||||
* Request that this toplevel surface be the given size. Returns the associated
|
||||
* configure serial.
|
||||
|
@ -545,6 +545,30 @@ void wlr_xdg_toplevel_send_close(struct wlr_xdg_toplevel *toplevel) {
|
||||
xdg_toplevel_send_close(toplevel->resource);
|
||||
}
|
||||
|
||||
uint32_t wlr_xdg_toplevel_configure(struct wlr_xdg_toplevel *toplevel,
|
||||
const struct wlr_xdg_toplevel_configure *configure) {
|
||||
toplevel->scheduled.width = configure->width;
|
||||
toplevel->scheduled.height = configure->height;
|
||||
toplevel->scheduled.maximized = configure->maximized;
|
||||
toplevel->scheduled.fullscreen = configure->fullscreen;
|
||||
toplevel->scheduled.resizing = configure->resizing;
|
||||
toplevel->scheduled.activated = configure->activated;
|
||||
toplevel->scheduled.suspended = configure->suspended;
|
||||
toplevel->scheduled.tiled = configure->tiled;
|
||||
|
||||
if (configure->fields & WLR_XDG_TOPLEVEL_CONFIGURE_BOUNDS) {
|
||||
toplevel->scheduled.fields |= WLR_XDG_TOPLEVEL_CONFIGURE_BOUNDS;
|
||||
toplevel->scheduled.bounds = configure->bounds;
|
||||
}
|
||||
|
||||
if (configure->fields & WLR_XDG_TOPLEVEL_CONFIGURE_WM_CAPABILITIES) {
|
||||
toplevel->scheduled.fields |= WLR_XDG_TOPLEVEL_CONFIGURE_WM_CAPABILITIES;
|
||||
toplevel->scheduled.wm_capabilities = configure->wm_capabilities;
|
||||
}
|
||||
|
||||
return wlr_xdg_surface_schedule_configure(toplevel->base);
|
||||
}
|
||||
|
||||
uint32_t wlr_xdg_toplevel_set_size(struct wlr_xdg_toplevel *toplevel,
|
||||
int32_t width, int32_t height) {
|
||||
assert(width >= 0 && height >= 0);
|
||||
|
Loading…
Reference in New Issue
Block a user