mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 08:32:30 +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);
|
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
|
* Request that this toplevel surface be the given size. Returns the associated
|
||||||
* configure serial.
|
* configure serial.
|
||||||
|
@ -545,6 +545,30 @@ void wlr_xdg_toplevel_send_close(struct wlr_xdg_toplevel *toplevel) {
|
|||||||
xdg_toplevel_send_close(toplevel->resource);
|
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,
|
uint32_t wlr_xdg_toplevel_set_size(struct wlr_xdg_toplevel *toplevel,
|
||||||
int32_t width, int32_t height) {
|
int32_t width, int32_t height) {
|
||||||
assert(width >= 0 && height >= 0);
|
assert(width >= 0 && height >= 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user