Refactor tree_next

- Makes `tree_next` not recursive.
- Adds `focus next|prev [sibling]` command. See (1.) and (2.) in
https://github.com/i3/i3/issues/2587#issuecomment-378505551 (Issue also
requests move command, not implemented here).
- Directional focus command now supports command criteria.

Wrapping is not implemented inside a floating container. This was also
true before the refactor so I am not changing it here.
This commit is contained in:
Orestis Floros
2018-09-14 18:34:43 +03:00
committed by Orestis Floros
parent f402f45702
commit bbc4c99c72
9 changed files with 295 additions and 162 deletions

View File

@ -59,11 +59,16 @@ bool level_down(void);
void tree_render(void);
/**
* Changes focus in the given way (next/previous) and given orientation
* (horizontal/vertical).
* Changes focus in the given direction
*
*/
void tree_next(char way, orientation_t orientation);
void tree_next(Con *con, direction_t direction);
/**
* Get the previous / next sibling
*
*/
Con *get_tree_next_sibling(Con *con, position_t direction);
/**
* Closes the given container including all children.