aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2016-10-11 08:22:13 -0400
committerGitHub <noreply@github.com>2016-10-11 08:22:13 -0400
commit9ad6fc592dd6bd5bf29e60b03186bba32f5c9fa3 (patch)
tree2c25f0bb2b0c37b28e4bcc32fb65ece10a7d9c06
parent6446e4409f1e6e106c1576683c858df785e3cf38 (diff)
parent24c3b8606555671cf31fe17db5d783846868a447 (diff)
Merge pull request #948 from thejan2009/floating-titlebar-click
also check floating cons in container_find
-rw-r--r--sway/container.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/sway/container.c b/sway/container.c
index 9d5e2690..4f22eb0d 100644
--- a/sway/container.c
+++ b/sway/container.c
@@ -727,14 +727,29 @@ swayc_t *container_find(swayc_t *container, bool (*f)(swayc_t *, const void *),
return NULL;
}
+ swayc_t *con;
+ if (container->type == C_WORKSPACE) {
+ for (int i = 0; i < container->floating->length; ++i) {
+ con = container->floating->items[i];
+ if (f(con, data)) {
+ return con;
+ }
+ con = container_find(con, f, data);
+ if (con != NULL) {
+ return con;
+ }
+ }
+ }
+
for (int i = 0; i < container->children->length; ++i) {
- if (f(container->children->items[i], data)) {
- return container->children->items[i];
+ con = container->children->items[i];
+ if (f(con, data)) {
+ return con;
}
- swayc_t *find = container_find(container->children->items[i], f, data);
- if (find != NULL) {
- return find;
+ con = container_find(con, f, data);
+ if (con != NULL) {
+ return con;
}
}