mirror of
https://github.com/swaywm/sway.git
synced 2026-04-18 06:46:56 -04:00
xdg-decoration: let floating clients set borders
The xdg-decoration protocol allows clients to request whether they want to use server side decorations or client side decorations. Currently, sway ignores this and always enforces whatever the server is currently set to. Although tiled clients cannot be allowed to set borders, there is no harm in listening requests from floating clients. Sidenote: also fix an unrelated style error.
This commit is contained in:
parent
7a15e715b7
commit
acf946fe4c
3 changed files with 43 additions and 4 deletions
|
|
@ -20,6 +20,7 @@
|
|||
#include "sway/tree/arrange.h"
|
||||
#include "sway/tree/view.h"
|
||||
#include "sway/tree/workspace.h"
|
||||
#include "sway/xdg_decoration.h"
|
||||
#include "list.h"
|
||||
#include "log.h"
|
||||
#include "stringop.h"
|
||||
|
|
@ -835,7 +836,13 @@ void container_set_floating(struct sway_container *container, bool enable) {
|
|||
if (container->view) {
|
||||
view_set_tiled(container->view, false);
|
||||
if (container->view->using_csd) {
|
||||
container->saved_border = container->pending.border;
|
||||
container->pending.border = B_CSD;
|
||||
if (container->view->xdg_decoration) {
|
||||
struct sway_xdg_decoration *deco = container->view->xdg_decoration;
|
||||
wlr_xdg_toplevel_decoration_v1_set_mode(deco->wlr_xdg_decoration,
|
||||
WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE);
|
||||
}
|
||||
}
|
||||
}
|
||||
container_floating_set_default_size(container);
|
||||
|
|
@ -873,6 +880,11 @@ void container_set_floating(struct sway_container *container, bool enable) {
|
|||
view_set_tiled(container->view, true);
|
||||
if (container->view->using_csd) {
|
||||
container->pending.border = container->saved_border;
|
||||
if (container->view->xdg_decoration) {
|
||||
struct sway_xdg_decoration *deco = container->view->xdg_decoration;
|
||||
wlr_xdg_toplevel_decoration_v1_set_mode(deco->wlr_xdg_decoration,
|
||||
WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
|
||||
}
|
||||
}
|
||||
}
|
||||
container->width_fraction = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue