Rename tree_close() to tree_close_internal().

It should be clear for callers of this function that this is an internal
function that skips certain validations which might be important. Therefore
we make it clear that this is an internal function by renaming it.

relates to #1761
This commit is contained in:
Ingo Bürk 2015-12-27 20:58:35 -05:00
parent dc463077d6
commit 0dd71674de
10 changed files with 28 additions and 28 deletions

View File

@ -278,7 +278,7 @@ orientation_t con_orientation(Con *con);
/** /**
* Returns the container which will be focused next when the given container * Returns the container which will be focused next when the given container
* is not available anymore. Called in tree_close and con_move_to_workspace * is not available anymore. Called in tree_close_internal and con_move_to_workspace
* to properly restore focus. * to properly restore focus.
* *
*/ */

View File

@ -62,7 +62,7 @@ typedef enum { BS_NORMAL = 0,
BS_NONE = 1, BS_NONE = 1,
BS_PIXEL = 2 } border_style_t; BS_PIXEL = 2 } border_style_t;
/** parameter to specify whether tree_close() and x_window_kill() should kill /** parameter to specify whether tree_close_internal() and x_window_kill() should kill
* only this specific window or the whole X11 client */ * only this specific window or the whole X11 client */
typedef enum { DONT_KILL_WINDOW = 0, typedef enum { DONT_KILL_WINDOW = 0,
KILL_WINDOW = 1, KILL_WINDOW = 1,

View File

@ -57,7 +57,7 @@ bool level_down(void);
void tree_render(void); void tree_render(void);
/** /**
* Closes the current container using tree_close(). * Closes the current container using tree_close_internal().
* *
*/ */
void tree_close_con(kill_window_t kill_window); void tree_close_con(kill_window_t kill_window);
@ -78,11 +78,11 @@ void tree_next(char way, orientation_t orientation);
* recursively while deleting a containers children. * recursively while deleting a containers children.
* *
* The force_set_focus flag is specified in the case of killing a floating * The force_set_focus flag is specified in the case of killing a floating
* window: tree_close() will be invoked for the CT_FLOATINGCON (the parent * window: tree_close_internal() will be invoked for the CT_FLOATINGCON (the parent
* container) and focus should be set there. * container) and focus should be set there.
* *
*/ */
bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus); bool tree_close_internal(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus);
/** /**
* Loads tree from ~/.i3/_restart.json (used for in-place restarts). * Loads tree from ~/.i3/_restart.json (used for in-place restarts).

View File

@ -1281,7 +1281,7 @@ void cmd_kill(I3_CMD, const char *kill_mode_str) {
else { else {
TAILQ_FOREACH(current, &owindows, owindows) { TAILQ_FOREACH(current, &owindows, owindows) {
DLOG("matching: %p / %s\n", current->con, current->con->name); DLOG("matching: %p / %s\n", current->con, current->con->name);
tree_close(current->con, kill_mode, false, false); tree_close_internal(current->con, kill_mode, false, false);
} }
} }

View File

@ -1162,7 +1162,7 @@ orientation_t con_orientation(Con *con) {
/* /*
* Returns the container which will be focused next when the given container * Returns the container which will be focused next when the given container
* is not available anymore. Called in tree_close and con_move_to_workspace * is not available anymore. Called in tree_close_internal and con_move_to_workspace
* to properly restore focus. * to properly restore focus.
* *
*/ */
@ -1678,7 +1678,7 @@ static void con_on_remove_child(Con *con) {
if (TAILQ_EMPTY(&(con->focus_head)) && !workspace_is_visible(con)) { if (TAILQ_EMPTY(&(con->focus_head)) && !workspace_is_visible(con)) {
LOG("Closing old workspace (%p / %s), it is empty\n", con, con->name); LOG("Closing old workspace (%p / %s), it is empty\n", con, con->name);
yajl_gen gen = ipc_marshal_workspace_event("empty", con, NULL); yajl_gen gen = ipc_marshal_workspace_event("empty", con, NULL);
tree_close(con, DONT_KILL_WINDOW, false, false); tree_close_internal(con, DONT_KILL_WINDOW, false, false);
const unsigned char *payload; const unsigned char *payload;
ylength length; ylength length;
@ -1699,7 +1699,7 @@ static void con_on_remove_child(Con *con) {
int children = con_num_children(con); int children = con_num_children(con);
if (children == 0) { if (children == 0) {
DLOG("Container empty, closing\n"); DLOG("Container empty, closing\n");
tree_close(con, DONT_KILL_WINDOW, false, false); tree_close_internal(con, DONT_KILL_WINDOW, false, false);
return; return;
} }
} }

View File

@ -162,7 +162,7 @@ void floating_enable(Con *con, bool automatic) {
} }
/* 1: detach the container from its parent */ /* 1: detach the container from its parent */
/* TODO: refactor this with tree_close() */ /* TODO: refactor this with tree_close_internal() */
TAILQ_REMOVE(&(con->parent->nodes_head), con, nodes); TAILQ_REMOVE(&(con->parent->nodes_head), con, nodes);
TAILQ_REMOVE(&(con->parent->focus_head), con, focused); TAILQ_REMOVE(&(con->parent->focus_head), con, focused);
@ -180,7 +180,7 @@ void floating_enable(Con *con, bool automatic) {
nc->layout = L_SPLITH; nc->layout = L_SPLITH;
/* We insert nc already, even though its rect is not yet calculated. This /* We insert nc already, even though its rect is not yet calculated. This
* is necessary because otherwise the workspace might be empty (and get * is necessary because otherwise the workspace might be empty (and get
* closed in tree_close()) even though its not. */ * closed in tree_close_internal()) even though its not. */
TAILQ_INSERT_TAIL(&(ws->floating_head), nc, floating_windows); TAILQ_INSERT_TAIL(&(ws->floating_head), nc, floating_windows);
TAILQ_INSERT_TAIL(&(ws->focus_head), nc, focused); TAILQ_INSERT_TAIL(&(ws->focus_head), nc, focused);
@ -188,7 +188,7 @@ void floating_enable(Con *con, bool automatic) {
if ((con->parent->type == CT_CON || con->parent->type == CT_FLOATING_CON) && if ((con->parent->type == CT_CON || con->parent->type == CT_FLOATING_CON) &&
con_num_children(con->parent) == 0) { con_num_children(con->parent) == 0) {
DLOG("Old container empty after setting this child to floating, closing\n"); DLOG("Old container empty after setting this child to floating, closing\n");
tree_close(con->parent, DONT_KILL_WINDOW, false, false); tree_close_internal(con->parent, DONT_KILL_WINDOW, false, false);
} }
char *name; char *name;
@ -333,7 +333,7 @@ void floating_disable(Con *con, bool automatic) {
/* 2: kill parent container */ /* 2: kill parent container */
TAILQ_REMOVE(&(con->parent->parent->floating_head), con->parent, floating_windows); TAILQ_REMOVE(&(con->parent->parent->floating_head), con->parent, floating_windows);
TAILQ_REMOVE(&(con->parent->parent->focus_head), con->parent, focused); TAILQ_REMOVE(&(con->parent->parent->focus_head), con->parent, focused);
tree_close(con->parent, DONT_KILL_WINDOW, true, false); tree_close_internal(con->parent, DONT_KILL_WINDOW, true, false);
/* 3: re-attach to the parent of the currently focused con on the workspace /* 3: re-attach to the parent of the currently focused con on the workspace
* this floating con was on */ * this floating con was on */

View File

@ -503,7 +503,7 @@ static void handle_unmap_notify_event(xcb_unmap_notify_event_t *event) {
goto ignore_end; goto ignore_end;
} }
tree_close(con, DONT_KILL_WINDOW, false, false); tree_close_internal(con, DONT_KILL_WINDOW, false, false);
tree_render(); tree_render();
ignore_end: ignore_end:
@ -878,7 +878,7 @@ static void handle_client_message(xcb_client_message_event_t *event) {
if (event->data.data32[0]) if (event->data.data32[0])
last_timestamp = event->data.data32[0]; last_timestamp = event->data.data32[0];
tree_close(con, KILL_WINDOW, false, false); tree_close_internal(con, KILL_WINDOW, false, false);
tree_render(); tree_render();
} else { } else {
DLOG("Couldn't find con for _NET_CLOSE_WINDOW request. (window = %d)\n", event->window); DLOG("Couldn't find con for _NET_CLOSE_WINDOW request. (window = %d)\n", event->window);

View File

@ -741,7 +741,7 @@ void randr_query_outputs(void) {
if (current != next && TAILQ_EMPTY(&(current->focus_head))) { if (current != next && TAILQ_EMPTY(&(current->focus_head))) {
/* the workspace is empty and not focused, get rid of it */ /* the workspace is empty and not focused, get rid of it */
DLOG("Getting rid of current = %p / %s (empty, unfocused)\n", current, current->name); DLOG("Getting rid of current = %p / %s (empty, unfocused)\n", current, current->name);
tree_close(current, DONT_KILL_WINDOW, false, false); tree_close_internal(current, DONT_KILL_WINDOW, false, false);
continue; continue;
} }
DLOG("Detaching current = %p / %s\n", current, current->name); DLOG("Detaching current = %p / %s\n", current, current->name);
@ -783,7 +783,7 @@ void randr_query_outputs(void) {
} }
DLOG("destroying disappearing con %p\n", output->con); DLOG("destroying disappearing con %p\n", output->con);
tree_close(output->con, DONT_KILL_WINDOW, true, false); tree_close_internal(output->con, DONT_KILL_WINDOW, true, false);
DLOG("Done. Should be fine now\n"); DLOG("Done. Should be fine now\n");
output->con = NULL; output->con = NULL;
} }

View File

@ -185,11 +185,11 @@ static bool _is_con_mapped(Con *con) {
* recursively while deleting a containers children. * recursively while deleting a containers children.
* *
* The force_set_focus flag is specified in the case of killing a floating * The force_set_focus flag is specified in the case of killing a floating
* window: tree_close() will be invoked for the CT_FLOATINGCON (the parent * window: tree_close_internal() will be invoked for the CT_FLOATINGCON (the parent
* container) and focus should be set there. * container) and focus should be set there.
* *
*/ */
bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus) { bool tree_close_internal(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus) {
bool was_mapped = con->mapped; bool was_mapped = con->mapped;
Con *parent = con->parent; Con *parent = con->parent;
@ -219,7 +219,7 @@ bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool
for (child = TAILQ_FIRST(&(con->nodes_head)); child;) { for (child = TAILQ_FIRST(&(con->nodes_head)); child;) {
nextchild = TAILQ_NEXT(child, nodes); nextchild = TAILQ_NEXT(child, nodes);
DLOG("killing child=%p\n", child); DLOG("killing child=%p\n", child);
if (!tree_close(child, kill_window, true, false)) if (!tree_close_internal(child, kill_window, true, false))
abort_kill = true; abort_kill = true;
child = nextchild; child = nextchild;
} }
@ -310,7 +310,7 @@ bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool
* underlying container, see ticket #660. * underlying container, see ticket #660.
* *
* Rendering has to be avoided when dont_kill_parent is set (when * Rendering has to be avoided when dont_kill_parent is set (when
* tree_close calls itself recursively) because the tree is in a * tree_close_internal calls itself recursively) because the tree is in a
* non-renderable state during that time. */ * non-renderable state during that time. */
if (!dont_kill_parent) if (!dont_kill_parent)
tree_render(); tree_render();
@ -320,7 +320,7 @@ bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool
if (con_is_floating(con)) { if (con_is_floating(con)) {
DLOG("Container was floating, killing floating container\n"); DLOG("Container was floating, killing floating container\n");
tree_close(parent, DONT_KILL_WINDOW, false, (con == focused)); tree_close_internal(parent, DONT_KILL_WINDOW, false, (con == focused));
DLOG("parent container killed\n"); DLOG("parent container killed\n");
} }
@ -363,7 +363,7 @@ bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool
} }
/* /*
* Closes the current container using tree_close(). * Closes the current container using tree_close_internal().
* *
*/ */
void tree_close_con(kill_window_t kill_window) { void tree_close_con(kill_window_t kill_window) {
@ -379,7 +379,7 @@ void tree_close_con(kill_window_t kill_window) {
for (child = TAILQ_FIRST(&(focused->focus_head)); child;) { for (child = TAILQ_FIRST(&(focused->focus_head)); child;) {
nextchild = TAILQ_NEXT(child, focused); nextchild = TAILQ_NEXT(child, focused);
DLOG("killing child=%p\n", child); DLOG("killing child=%p\n", child);
tree_close(child, kill_window, false, false); tree_close_internal(child, kill_window, false, false);
child = nextchild; child = nextchild;
} }
@ -387,7 +387,7 @@ void tree_close_con(kill_window_t kill_window) {
} }
/* Kill con */ /* Kill con */
tree_close(focused, kill_window, false, false); tree_close_internal(focused, kill_window, false, false);
} }
/* /*
@ -773,7 +773,7 @@ void tree_flatten(Con *con) {
/* 4: close the redundant cons */ /* 4: close the redundant cons */
DLOG("closing redundant cons\n"); DLOG("closing redundant cons\n");
tree_close(con, DONT_KILL_WINDOW, true, false); tree_close_internal(con, DONT_KILL_WINDOW, true, false);
/* Well, we got to abort the recursion here because we destroyed the /* Well, we got to abort the recursion here because we destroyed the
* container. However, if tree_flatten() is called sufficiently often, * container. However, if tree_flatten() is called sufficiently often,

View File

@ -442,7 +442,7 @@ static void _workspace_show(Con *workspace) {
DLOG("old = %p / %s\n", old, (old ? old->name : "(null)")); DLOG("old = %p / %s\n", old, (old ? old->name : "(null)"));
/* Close old workspace if necessary. This must be done *after* doing /* Close old workspace if necessary. This must be done *after* doing
* urgency handling, because tree_close() will do a con_focus() on the next * urgency handling, because tree_close_internal() will do a con_focus() on the next
* client, which will clear the urgency flag too early. Also, there is no * client, which will clear the urgency flag too early. Also, there is no
* way for con_focus() to know about when to clear urgency immediately and * way for con_focus() to know about when to clear urgency immediately and
* when to defer it. */ * when to defer it. */
@ -451,7 +451,7 @@ static void _workspace_show(Con *workspace) {
if (!workspace_is_visible(old)) { if (!workspace_is_visible(old)) {
LOG("Closing old workspace (%p / %s), it is empty\n", old, old->name); LOG("Closing old workspace (%p / %s), it is empty\n", old, old->name);
yajl_gen gen = ipc_marshal_workspace_event("empty", old, NULL); yajl_gen gen = ipc_marshal_workspace_event("empty", old, NULL);
tree_close(old, DONT_KILL_WINDOW, false, false); tree_close_internal(old, DONT_KILL_WINDOW, false, false);
const unsigned char *payload; const unsigned char *payload;
ylength length; ylength length;