New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

split + layout stacked / tabbed creates redundant containers #3001

Open
orestisf1993 opened this Issue Sep 30, 2017 · 8 comments

Comments

Projects
None yet
4 participants
@orestisf1993
Member

orestisf1993 commented Sep 30, 2017

Output of i3 --moreversion 2>&- || i3 --version:

Binary i3 version:  4.14-128-gc08ef361 (2017-09-29, branch "next") © 2009 Michael Stapelberg and contributors

URL to a logfile as per https://i3wm.org/docs/debugging.html:

https://logs.i3wm.org/logs/5637036128075776.bz2

What I did:

  1. fresh workspace
  2. open window
  3. layout stacked
  4. open window
  5. split v
  6. layout stacked
  7. repeat 5-6

What I saw:

2017-09-30-042426_1680x1009

Repeating this too many times makes i3 unbearably slow and memory usage skyrockets.

What I expected instead:
Redundant stacked / tabbed containers should not be opened.

@i3bot i3bot added the 4.14 label Sep 30, 2017

orestisf1993 added a commit to orestisf1993/i3 that referenced this issue Sep 30, 2017

@Airblader Airblader added the bug label Sep 30, 2017

@Airblader

This comment has been minimized.

Show comment
Hide comment
@Airblader

Airblader Sep 30, 2017

Member

IMHO this is the correct behavior. Why should we close this (valid) container that has been intentionally created? You can move a window into each of those stacked containers (just do your steps, open a second window and move up a few times).

(Although, oddly, move down a single time immediately moves it all the way to the first window)

@stapelberg CC

Member

Airblader commented Sep 30, 2017

IMHO this is the correct behavior. Why should we close this (valid) container that has been intentionally created? You can move a window into each of those stacked containers (just do your steps, open a second window and move up a few times).

(Although, oddly, move down a single time immediately moves it all the way to the first window)

@stapelberg CC

@orestisf1993

This comment has been minimized.

Show comment
Hide comment
@orestisf1993

orestisf1993 Sep 30, 2017

Member

Hmm. I understand the behavior a bit better right now but the same thing (intentionally) doesn't happen for layout splith && splitv.

I think it's less confusing if we apply the same to stacked / tabbed containers instead of allowing this:
out

Member

orestisf1993 commented Sep 30, 2017

Hmm. I understand the behavior a bit better right now but the same thing (intentionally) doesn't happen for layout splith && splitv.

I think it's less confusing if we apply the same to stacked / tabbed containers instead of allowing this:
out

@roobre

This comment has been minimized.

Show comment
Hide comment
@roobre

roobre Nov 12, 2017

I'm suffering a similar issue on Binary i3 version: 4.14.1. When a new workspace is created in certain mode, and then I issue a layout change (for example, layout toggle split in tabbed container, or layout tabbed on a split container), a redundant container bar at top is created.

For example, if I create a new container with workspace_layout split (default), and then I issue layout tabbed, I get:

deepin-screenshot j28535

This behaviour is diferent to what i3 did before, where this redundant top bar was not shown.

Full version output:

Running i3 version: 4.14.1 (2017-09-24) (pid 5061)abort…)
Loaded i3 config: /home/roobre/.i3/config (Last modified: Sun 05 Nov 2017 04:22:58 PM CET, 610933 seconds ago)

The i3 binary you just called: /usr/bin/i3
The i3 binary you are running: i3

roobre commented Nov 12, 2017

I'm suffering a similar issue on Binary i3 version: 4.14.1. When a new workspace is created in certain mode, and then I issue a layout change (for example, layout toggle split in tabbed container, or layout tabbed on a split container), a redundant container bar at top is created.

For example, if I create a new container with workspace_layout split (default), and then I issue layout tabbed, I get:

deepin-screenshot j28535

This behaviour is diferent to what i3 did before, where this redundant top bar was not shown.

Full version output:

Running i3 version: 4.14.1 (2017-09-24) (pid 5061)abort…)
Loaded i3 config: /home/roobre/.i3/config (Last modified: Sun 05 Nov 2017 04:22:58 PM CET, 610933 seconds ago)

The i3 binary you just called: /usr/bin/i3
The i3 binary you are running: i3
@orestisf1993

This comment has been minimized.

Show comment
Hide comment
@orestisf1993

orestisf1993 Apr 29, 2018

Member

The offending line for the slowdown is this render_con:

i3/src/render.c

Lines 164 to 170 in 6f11b6f

if ((child = TAILQ_FIRST(&(con->focus_head)))) {
/* By rendering the stacked container again, we handle the case
* that we have a non-leaf-container inside the stack. In that
* case, the children of the non-leaf-container need to be raised
* as well. */
render_con(child, false);
}

Member

orestisf1993 commented Apr 29, 2018

The offending line for the slowdown is this render_con:

i3/src/render.c

Lines 164 to 170 in 6f11b6f

if ((child = TAILQ_FIRST(&(con->focus_head)))) {
/* By rendering the stacked container again, we handle the case
* that we have a non-leaf-container inside the stack. In that
* case, the children of the non-leaf-container need to be raised
* as well. */
render_con(child, false);
}

@roobre

This comment has been minimized.

Show comment
Hide comment
@roobre

roobre May 2, 2018

I forgot to comment that on i3 version 4.15-36-g670dfa0b (2018-03-19, branch "next") I no longer suffer this issue. I'm not sure if this was fixed exactly on that version, but since I switched to the next branch it is gone. Glad to see it fixed, btw, it was really annoying. Great work!

roobre commented May 2, 2018

I forgot to comment that on i3 version 4.15-36-g670dfa0b (2018-03-19, branch "next") I no longer suffer this issue. I'm not sure if this was fixed exactly on that version, but since I switched to the next branch it is gone. Glad to see it fixed, btw, it was really annoying. Great work!

@orestisf1993

This comment has been minimized.

Show comment
Hide comment
@orestisf1993

orestisf1993 May 3, 2018

Member

@roobre weird, I still get this behaviour.

Member

orestisf1993 commented May 3, 2018

@roobre weird, I still get this behaviour.

@roobre

This comment has been minimized.

Show comment
Hide comment
@roobre

roobre May 5, 2018

@orestisf1993 What default workspace_layout are you using? I certainly do not get extra containers using tabbed, after switching to split with layout toggle split.

roobre commented May 5, 2018

@orestisf1993 What default workspace_layout are you using? I certainly do not get extra containers using tabbed, after switching to split with layout toggle split.

@orestisf1993

This comment has been minimized.

Show comment
Hide comment
@orestisf1993

orestisf1993 May 6, 2018

Member

@roobre With the default i3 config: open fresh workspace, $mod+w (layout tabbed), open windows

Member

orestisf1993 commented May 6, 2018

@roobre With the default i3 config: open fresh workspace, $mod+w (layout tabbed), open windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment