refactor workspace_show and friends
This commit is contained in:
parent
29fb09ae74
commit
92cc4494aa
@ -47,19 +47,20 @@ void workspace_set_name(Workspace *ws, const char *name);
|
||||
bool workspace_is_visible(Con *ws);
|
||||
|
||||
/** Switches to the given workspace */
|
||||
void workspace_show(const char *num);
|
||||
void workspace_show(Con *ws);
|
||||
void workspace_show_by_name(const char *num);
|
||||
|
||||
/**
|
||||
* Focuses the next workspace.
|
||||
* Returns the next workspace.
|
||||
*
|
||||
*/
|
||||
void workspace_next();
|
||||
Con* workspace_next();
|
||||
|
||||
/**
|
||||
* Focuses the previous workspace.
|
||||
* Returns the previous workspace.
|
||||
*
|
||||
*/
|
||||
void workspace_prev();
|
||||
Con* workspace_prev();
|
||||
|
||||
#if 0
|
||||
/**
|
||||
|
@ -440,7 +440,7 @@ focus:
|
||||
int count = 0;
|
||||
TAILQ_FOREACH(current, &owindows, owindows) {
|
||||
Con *ws = con_get_workspace(current->con);
|
||||
workspace_show(ws->name);
|
||||
workspace_show(ws);
|
||||
LOG("focusing %p / %s\n", current->con, current->con->name);
|
||||
con_focus(current->con);
|
||||
count++;
|
||||
@ -561,18 +561,18 @@ optional_kill_mode:
|
||||
workspace:
|
||||
TOK_WORKSPACE TOK_NEXT
|
||||
{
|
||||
workspace_next();
|
||||
workspace_show(workspace_next());
|
||||
tree_render();
|
||||
}
|
||||
| TOK_WORKSPACE TOK_PREV
|
||||
{
|
||||
workspace_prev();
|
||||
workspace_show(workspace_prev());
|
||||
tree_render();
|
||||
}
|
||||
| TOK_WORKSPACE STR
|
||||
{
|
||||
printf("should switch to workspace %s\n", $2);
|
||||
workspace_show($2);
|
||||
workspace_show_by_name($2);
|
||||
free($2);
|
||||
|
||||
tree_render();
|
||||
|
@ -632,7 +632,7 @@ void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates, bool
|
||||
* focused. Must do before attaching because workspace_show checks to see
|
||||
* if focused container is in its area. */
|
||||
if (workspace_is_visible(workspace)) {
|
||||
workspace_show(workspace->name);
|
||||
workspace_show(workspace);
|
||||
|
||||
/* Don’t warp if told so (when dragging floating windows with the
|
||||
* mouse for example) */
|
||||
@ -668,7 +668,7 @@ void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates, bool
|
||||
/* Descend focus stack in case focus_next is a workspace which can
|
||||
* occur if we move to the same workspace. Also show current workspace
|
||||
* to ensure it is focused. */
|
||||
workspace_show(con_get_workspace(focus_next)->name);
|
||||
workspace_show(con_get_workspace(focus_next));
|
||||
con_focus(con_descend_focused(focus_next));
|
||||
}
|
||||
|
||||
|
@ -363,7 +363,7 @@ void init_ws_for_output(Output *output, Con *content) {
|
||||
if (visible && (previous = TAILQ_NEXT(workspace, focused))) {
|
||||
LOG("Switching to previously used workspace \"%s\" on output \"%s\"\n",
|
||||
previous->name, workspace_out->name);
|
||||
workspace_show(previous->name);
|
||||
workspace_show(previous);
|
||||
}
|
||||
|
||||
con_detach(workspace);
|
||||
@ -390,7 +390,7 @@ void init_ws_for_output(Output *output, Con *content) {
|
||||
if (!visible) {
|
||||
visible = TAILQ_FIRST(&(content->nodes_head));
|
||||
focused = content;
|
||||
workspace_show(visible->name);
|
||||
workspace_show(visible);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -403,7 +403,7 @@ void init_ws_for_output(Output *output, Con *content) {
|
||||
LOG("Initializing first assigned workspace \"%s\" for output \"%s\"\n",
|
||||
assignment->name, assignment->output);
|
||||
focused = content;
|
||||
workspace_show(assignment->name);
|
||||
workspace_show_by_name(assignment->name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -420,7 +420,7 @@ static bool _tree_next(Con *con, char way, orientation_t orientation, bool wrap)
|
||||
if (!workspace)
|
||||
return false;
|
||||
|
||||
workspace_show(workspace->name);
|
||||
workspace_show(workspace);
|
||||
Con *focus = con_descend_direction(workspace, direction);
|
||||
if (focus) {
|
||||
con_focus(focus);
|
||||
|
@ -180,11 +180,8 @@ static void workspace_reassign_sticky(Con *con) {
|
||||
* Switches to the given workspace
|
||||
*
|
||||
*/
|
||||
void workspace_show(const char *num) {
|
||||
Con *workspace, *current, *old = NULL;
|
||||
|
||||
bool changed_num_workspaces;
|
||||
workspace = workspace_get(num, &changed_num_workspaces);
|
||||
void workspace_show_changed(Con *workspace, bool changed_num_workspaces) {
|
||||
Con *current, *old = NULL;
|
||||
|
||||
/* disable fullscreen for the other workspaces and get the workspace we are
|
||||
* currently on. */
|
||||
@ -238,11 +235,22 @@ void workspace_show(const char *num) {
|
||||
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, "{\"change\":\"focus\"}");
|
||||
}
|
||||
|
||||
void workspace_show(Con *workspace) {
|
||||
workspace_show_changed(workspace, false);
|
||||
}
|
||||
|
||||
void workspace_show_by_name(const char *num) {
|
||||
Con *workspace;
|
||||
bool changed_num_workspaces;
|
||||
workspace = workspace_get(num, &changed_num_workspaces);
|
||||
workspace_show_changed(workspace, changed_num_workspaces);
|
||||
}
|
||||
|
||||
/*
|
||||
* Focuses the next workspace.
|
||||
*
|
||||
*/
|
||||
void workspace_next() {
|
||||
Con* workspace_next() {
|
||||
Con *current = con_get_workspace(focused);
|
||||
Con *next = NULL;
|
||||
Con *output;
|
||||
@ -277,7 +285,7 @@ void workspace_next() {
|
||||
found_current = 1;
|
||||
} else if (child->num == -1 && (current->num != -1 || found_current)) {
|
||||
next = child;
|
||||
goto workspace_next_show;
|
||||
goto workspace_next_end;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -292,16 +300,15 @@ void workspace_next() {
|
||||
next = child;
|
||||
}
|
||||
}
|
||||
|
||||
workspace_next_show:
|
||||
workspace_show(next->name);
|
||||
workspace_next_end:
|
||||
return next;
|
||||
}
|
||||
|
||||
/*
|
||||
* Focuses the previous workspace.
|
||||
*
|
||||
*/
|
||||
void workspace_prev() {
|
||||
Con* workspace_prev() {
|
||||
Con *current = con_get_workspace(focused);
|
||||
Con *prev = NULL;
|
||||
Con *output;
|
||||
@ -336,7 +343,7 @@ void workspace_prev() {
|
||||
found_current = 1;
|
||||
} else if (child->num == -1 && (current->num != -1 || found_current)) {
|
||||
prev = child;
|
||||
goto workspace_prev_show;
|
||||
goto workspace_prev_end;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -352,8 +359,8 @@ void workspace_prev() {
|
||||
}
|
||||
}
|
||||
|
||||
workspace_prev_show:
|
||||
workspace_show(prev->name);
|
||||
workspace_prev_end:
|
||||
return prev;
|
||||
}
|
||||
|
||||
static bool get_urgency_flag(Con *con) {
|
||||
|
Loading…
Reference in New Issue
Block a user