cmd_output->needs_tree_render = true;
return;
}
- if (!no_auto_back_and_forth && maybe_back_and_forth(cmd_output, workspace->name))
+ if (!no_auto_back_and_forth && maybe_back_and_forth(cmd_output, workspace->name)) {
+ ysuccess(true);
return;
+ }
workspace_show(workspace);
cmd_output->needs_tree_render = true;
}
DLOG("should switch to workspace %s\n", name);
- if (!no_auto_back_and_forth && maybe_back_and_forth(cmd_output, name))
+ if (!no_auto_back_and_forth && maybe_back_and_forth(cmd_output, name)) {
+ ysuccess(true);
return;
+ }
workspace_show_by_name(name);
cmd_output->needs_tree_render = true;
void cmd_layout(I3_CMD, const char *layout_str) {
HANDLE_EMPTY_MATCH;
- if (strcmp(layout_str, "stacking") == 0)
- layout_str = "stacked";
layout_t layout;
- /* default is a special case which will be handled in con_set_layout(). */
- if (strcmp(layout_str, "default") == 0)
- layout = L_DEFAULT;
- else if (strcmp(layout_str, "stacked") == 0)
- layout = L_STACKED;
- else if (strcmp(layout_str, "tabbed") == 0)
- layout = L_TABBED;
- else if (strcmp(layout_str, "splitv") == 0)
- layout = L_SPLITV;
- else if (strcmp(layout_str, "splith") == 0)
- layout = L_SPLITH;
- else {
+ if (!layout_from_name(layout_str, &layout)) {
ELOG("Unknown layout \"%s\", this is a mismatch between code and parser spec.\n", layout_str);
return;
}
#ifdef I3_ASAN_ENABLED
__lsan_do_leak_check();
#endif
- ipc_shutdown();
+ ipc_shutdown(SHUTDOWN_REASON_EXIT);
unlink(config.ipc_socket_path);
xcb_disconnect(conn);
exit(0);
*/
void cmd_restart(I3_CMD) {
LOG("restarting i3\n");
- ipc_shutdown();
+ ipc_shutdown(SHUTDOWN_REASON_RESTART);
unlink(config.ipc_socket_path);
/* We need to call this manually since atexit handlers don’t get called
* when exec()ing */