mirror of
https://github.com/swaywm/sway.git
synced 2025-11-12 13:29:56 -05:00
Improve CSD logic
This does the following: * Removes the xdg-decoration surface_commit listener. I was under the impression the client could ignore the server's preference and set whatever decoration they like using this protocol, but I don't think that's right. * Adds a listener for the xdg-decoration request_mode signal. The protocol states that the server should respond to this with its preference. We'll always respond with SSD here. * Makes it so tiled views which use CSD will still have sway decorations rendered. To do this, using_csd had to be added back to the view struct, and the border is changed when floating or unfloating a view.
This commit is contained in:
parent
6d0442c0c2
commit
21ff87d72b
6 changed files with 72 additions and 30 deletions
|
|
@ -309,6 +309,7 @@ void view_request_activate(struct sway_view *view) {
|
|||
}
|
||||
|
||||
void view_set_csd_from_server(struct sway_view *view, bool enabled) {
|
||||
wlr_log(WLR_DEBUG, "Telling view %p to set CSD to %i", view, enabled);
|
||||
if (view->xdg_decoration) {
|
||||
uint32_t mode = enabled ?
|
||||
WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE :
|
||||
|
|
@ -316,15 +317,20 @@ void view_set_csd_from_server(struct sway_view *view, bool enabled) {
|
|||
wlr_xdg_toplevel_decoration_v1_set_mode(
|
||||
view->xdg_decoration->wlr_xdg_decoration, mode);
|
||||
}
|
||||
view->using_csd = enabled;
|
||||
}
|
||||
|
||||
void view_update_csd_from_client(struct sway_view *view, bool enabled) {
|
||||
wlr_log(WLR_DEBUG, "View %p updated CSD to %i", view, enabled);
|
||||
if (enabled && view->border != B_CSD) {
|
||||
view->saved_border = view->border;
|
||||
view->border = B_CSD;
|
||||
if (container_is_floating(view->container)) {
|
||||
view->border = B_CSD;
|
||||
}
|
||||
} else if (!enabled && view->border == B_CSD) {
|
||||
view->border = view->saved_border;
|
||||
}
|
||||
view->using_csd = enabled;
|
||||
}
|
||||
|
||||
void view_set_tiled(struct sway_view *view, bool tiled) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue