aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@users.noreply.github.com>2022-12-21 08:11:51 +0100
committerGitHub <noreply@github.com>2022-12-21 08:11:51 +0100
commitab6f1fd1601e58c2f5db113f6566cdf8e015c119 (patch)
tree5e7886a545c06dbc14f70bd1544991f860dcb115 /src
parented690c7ba0f3d4e972ebd5a40acf964f7b939754 (diff)
downloadi3-ab6f1fd1601e58c2f5db113f6566cdf8e015c119.tar.gz
i3-ab6f1fd1601e58c2f5db113f6566cdf8e015c119.zip
fix focus <direction> with negative gaps (#5333)
fixes #5293
Diffstat (limited to 'src')
-rw-r--r--src/tree.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/tree.c b/src/tree.c
index 178ba057..cd4fca44 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -470,7 +470,11 @@ static Con *get_tree_next_workspace(Con *con, direction_t direction) {
return NULL;
}
- Output *current_output = get_output_containing(con->rect.x, con->rect.y);
+ // Use the center of the container instead of the left/top edges, to make
+ // this work with negative gaps. See https://github.com/i3/i3/issues/5293
+ const uint32_t x = con->rect.x + (con->rect.width / 2);
+ const uint32_t y = con->rect.y + (con->rect.height / 2);
+ Output *current_output = get_output_containing(x, y);
if (!current_output) {
return NULL;
}