aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/container.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-27 22:44:57 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-27 22:51:37 +1000
commit21ff87d72b44604d348cf71da3175b85ac5b2f75 (patch)
treede0ecfd66fd3a6957e0f8a2eb5038c785b3965c2 /sway/tree/container.c
parentRename view_set_csd_from_client to view_update_csd_from_client (diff)
downloadsway-21ff87d72b44604d348cf71da3175b85ac5b2f75.tar.gz
sway-21ff87d72b44604d348cf71da3175b85ac5b2f75.tar.zst
sway-21ff87d72b44604d348cf71da3175b85ac5b2f75.zip
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.
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r--sway/tree/container.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index d75e34a5..9b671c1d 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -669,6 +669,9 @@ void container_set_floating(struct sway_container *container, bool enable) {
669 container_init_floating(container); 669 container_init_floating(container);
670 if (container->view) { 670 if (container->view) {
671 view_set_tiled(container->view, false); 671 view_set_tiled(container->view, false);
672 if (container->view->using_csd) {
673 container->view->border = B_CSD;
674 }
672 } 675 }
673 if (old_parent) { 676 if (old_parent) {
674 container_reap_empty(old_parent); 677 container_reap_empty(old_parent);
@@ -695,6 +698,9 @@ void container_set_floating(struct sway_container *container, bool enable) {
695 } 698 }
696 if (container->view) { 699 if (container->view) {
697 view_set_tiled(container->view, true); 700 view_set_tiled(container->view, true);
701 if (container->view->using_csd) {
702 container->view->border = container->view->saved_border;
703 }
698 } 704 }
699 container->is_sticky = false; 705 container->is_sticky = false;
700 } 706 }