diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-28 16:58:56 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-28 16:58:56 -0400 |
commit | 0c8bc0264a8a66365c88c4f829c1ac0fefa65432 (patch) | |
tree | a8a0a09e79ff6e5282a5b7e04b9247aa1f1647f5 | |
parent | f99a653bd3c48c8be300bd98f89789055f55962d (diff) | |
parent | e4e8b66efdade7f8beb75beea9f527f74a07529a (diff) | |
download | sway-0c8bc0264a8a66365c88c4f829c1ac0fefa65432.zip sway-0c8bc0264a8a66365c88c4f829c1ac0fefa65432.tar.gz sway-0c8bc0264a8a66365c88c4f829c1ac0fefa65432.tar.bz2 |
Merge pull request #1640 from taiyu-len/fix_remove_view_from_scratchpad
fix remove_view_from_scratchpad
-rw-r--r-- | sway/commands.c | 2 | ||||
-rw-r--r-- | sway/container.c | 3 | ||||
-rw-r--r-- | sway/debug_log.c | 5 |
3 files changed, 9 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index c7dbf73..fb3653a 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -141,12 +141,12 @@ void remove_view_from_scratchpad(swayc_t *view) { int i; for (i = 0; i < scratchpad->length; i++) { if (scratchpad->items[i] == view) { + list_del(scratchpad, sp_index); if (sp_index == 0) { sp_index = scratchpad->length - 1; } else { sp_index--; } - list_del(scratchpad, sp_index); sp_view = NULL; } } diff --git a/sway/container.c b/sway/container.c index 829fde6..9fb044a 100644 --- a/sway/container.c +++ b/sway/container.c @@ -869,6 +869,9 @@ void container_map(swayc_t *container, void (*f)(swayc_t *view, void *data), voi void update_visibility_output(swayc_t *container, wlc_handle output) { // Inherit visibility swayc_t *parent = container->parent; + if (parent == NULL) { + return; + } container->visible = parent->visible; // special cases where visibility depends on focus if (parent->type == C_OUTPUT || parent->layout == L_TABBED || diff --git a/sway/debug_log.c b/sway/debug_log.c index d1eafae..166c41e 100644 --- a/sway/debug_log.c +++ b/sway/debug_log.c @@ -71,6 +71,11 @@ void layout_log(const swayc_t *c, int depth) { layout_log(c->floating->items[i], depth + 1); } } + } else if (c->type == C_ROOT && scratchpad->length > 0) { + fprintf(stderr, "ScratchPad\n"); + for (i = 0; i < scratchpad->length; ++i) { + container_log(scratchpad->items[i], 0); + } } } |