summaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Ashkan Kiani <ashkan.k.kiani@gmail.com>2019-04-12 00:54:09 -0700
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-04-12 16:52:24 -0400
commit27f51360b7cabc990258544ed6a74013db76e9df (patch)
tree3f0bdef967f91c865d5df2586c17803f96b30c63 /sway
parentsway-input.5: add xkeyboard-config(7) to "see also" (diff)
downloadsway-27f51360b7cabc990258544ed6a74013db76e9df.tar.gz
sway-27f51360b7cabc990258544ed6a74013db76e9df.tar.zst
sway-27f51360b7cabc990258544ed6a74013db76e9df.zip
Fix scratchpad logic for floating windows
When a tiled window is sent to the scratchpad, we want to use sane defaults, which is to center it and resize it to the default. For floating windows, we want to use their existing geometry.
Diffstat (limited to 'sway')
-rw-r--r--sway/tree/root.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sway/tree/root.c b/sway/tree/root.c
index c7c5e1df..a9d306a4 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -61,9 +61,14 @@ void root_scratchpad_add_container(struct sway_container *con) {
61 61
62 struct sway_container *parent = con->parent; 62 struct sway_container *parent = con->parent;
63 struct sway_workspace *workspace = con->workspace; 63 struct sway_workspace *workspace = con->workspace;
64 container_set_floating(con, true); 64
65 container_floating_set_default_size(con); 65 // When a tiled window is sent to scratchpad, center and resize it.
66 container_floating_move_to_center(con); 66 if (!container_is_floating(con)) {
67 container_set_floating(con, true);
68 container_floating_set_default_size(con);
69 container_floating_move_to_center(con);
70 }
71
67 container_detach(con); 72 container_detach(con);
68 con->scratchpad = true; 73 con->scratchpad = true;
69 list_add(root->scratchpad, con); 74 list_add(root->scratchpad, con);