X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=include%2Ftree.h;h=41a630366bfca43411f7934e696b57be975a81ab;hp=b9bf7f54ae0ce9baeee18803a69bd859f0becb36;hb=HEAD;hpb=22bac9fd9a6b3a2bf12aea124c519e2c9f22f855 diff --git a/include/tree.h b/include/tree.h index b9bf7f54..41a63036 100644 --- a/include/tree.h +++ b/include/tree.h @@ -1,9 +1,15 @@ /* * vim:ts=4:sw=4:expandtab + * + * i3 - an improved dynamic tiling window manager + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) + * + * tree.c: Everything that primarily modifies the layout tree data structure. + * */ +#pragma once -#ifndef _TREE_H -#define _TREE_H +#include extern Con *croot; /* TODO: i am not sure yet how much access to the focused container should @@ -34,29 +40,23 @@ Con *tree_open_con(Con *con, i3Window *window); void tree_split(Con *con, orientation_t orientation); /** - * Moves focus one level up. + * Moves focus one level up. Returns true if focus changed. * */ -void level_up(); +bool level_up(void); /** - * Moves focus one level down. + * Moves focus one level down. Returns true if focus changed. * */ -void level_down(); +bool level_down(void); /** * Renders the tree, that is rendering all outputs using render_con() and * pushing the changes to X11 using x_push_changes(). * */ -void tree_render(); - -/** - * Closes the current container using tree_close(). - * - */ -void tree_close_con(kill_window_t kill_window); +void tree_render(void); /** * Changes focus in the given way (next/previous) and given orientation @@ -70,8 +70,15 @@ void tree_next(char way, orientation_t orientation); * Returns true if the container was killed or false if just WM_DELETE was sent * and the window is expected to kill itself. * + * The dont_kill_parent flag is specified when the function calls itself + * recursively while deleting a containers children. + * + * The force_set_focus flag is specified in the case of killing a floating + * window: tree_close_internal() will be invoked for the CT_FLOATINGCON (the parent + * container) and focus should be set there. + * */ -bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent); +bool tree_close_internal(Con *con, kill_window_t kill_window, bool dont_kill_parent); /** * Loads tree from ~/.i3/_restart.json (used for in-place restarts). @@ -93,5 +100,3 @@ bool tree_restore(const char *path, xcb_get_geometry_reply_t *geometry); * */ void tree_flatten(Con *child); - -#endif