This commit should fix "move con to parent" trick (see below) in the
case when con->parent->parent is a workspace.
The trick:
mark _a, focus parent, focus parent, mark _b,
[con_mark=_a] move window to mark _b, [con_mark=_a] focus
The trick got broken in commit 626af81232
in order to fix an i3 crash (#2003). Reverting said commit fixes the
trick. The crash is caused by the fact that empty workspace isn't
considered a split (checked in src/con.c:1324), so the moved window ends
up as a sibling of the target workspace, not as its child.
Some apps including XTerm start with a WM_CLIENT_LEADER property
containing their own window ID. Before this commit, i3 tried to center
such windows onto itself and did it wrong since
`leader->rect == {0,0,0,0}` at this moment.
The first affected commit is 128122e766,
however, before it such windows already was misplaced, but got sanitized
afterward [1].
[1]: 8a3ef3a81b/src/floating.c (L329-L335)Fixes#3606
Fixes#3785 -- the issue where the Travis build failed because of gcc's
-Werror=address-of-packed-member.
Adds an equality function to avoid relying on memcmp().
This is strictly better: if the configured name does not match the current name,
the correct workspace will still be used.
When creating a new workspace, the configured name is still used.
This fixes the case where moving a container to a scratchpad hidden
container via a mark would cause the container to be tiling on the
__i3_scratch workspace. This still moves the container to the
__i3_scratch workspace, but properly adds it to the scratchpad so that
it becomes usable instead of requiring criteria to regain access to.
This change will make things strictly better for new users (without an existing
configuration file) and has no effect on existing users.
The tools should be fairly uncontentious, I hope, especially as they only serve
as a starting point anyway: users can quickly delete what they don’t want, or
change it into what they prefer.
But having something is strictly better than having nothing :)
We make some space in the config file by removing the old paragraph about pixel
fonts, which seems rather outdated and irrelevant to me.
This is strictly better: if the configured name does not match the current name,
the correct workspace will still be used.
When creating a new workspace, the configured name is still used.