tiling: Implemented tiling window position manipulation
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>
Wed, 29 Oct 2014 08:10:01 +0000 (08:10 +0000)
committerTom Hacohen <tom@stosb.com>
Wed, 29 Oct 2014 08:15:19 +0000 (08:15 +0000)
commit4c0f0c638f0708afd7cf830c1fb5c059ceb45e66
treec1dd51d51d26ca6dfddf94ff8bd7fdf7af12b0f5
parent310c10bca8ad5cfad38353ab23d5780c469a1bb2
tiling: Implemented tiling window position manipulation

Summary:
This implements the possibility to "break out" a node in the tree which
means that the node will be appended or prependen to the parent in the
grandparent.

The other function "joins" the node to the node before or after.
Basically it will be added as a child, and if necessarry the client
of this node will be added in a new Window Tree and also added as a child.

With the new actions you can move the focused window right/left/up/down
with keybindings.

If the window will "break out" or "join" depends on the parent split type.

Sample:
1|4|6
2|4|6
3|5|6

(Same Number means same Window)

1 is focused.
Left Key is pressed.

1 is in a vertical split so the window will "break out".
Result:
2|1|4|6
2|1|5|6

Now another key:
Down Key is pressed.

1 is in a vertical split so the window will "join".
Result:
1|2|4|6
3 3|5|6

@feature

Fixes T1350

Reviewers: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1382
src/modules/tiling/e_mod_tiling.c
src/modules/tiling/window_tree.c
src/modules/tiling/window_tree.h