Make "[move] workspace number" accept a default ws name after the ws number
This commit is contained in:
parent
c69fba3662
commit
236f9f45e3
|
@ -1427,10 +1427,10 @@ workspace using +move container to workspace back_and_forth+.
|
|||
workspace <next|prev|next_on_output|prev_on_output>
|
||||
workspace back_and_forth
|
||||
workspace <name>
|
||||
workspace number <number>
|
||||
workspace number <name>
|
||||
|
||||
move [window|container] [to] workspace <name>
|
||||
move [window|container] [to] workspace number <number>
|
||||
move [window|container] [to] workspace number <name>
|
||||
move [window|container] [to] workspace <prev|next|current>
|
||||
-----------------------------------
|
||||
|
||||
|
@ -1482,7 +1482,8 @@ workspaces are ordered the way they appeared. When they start with a number, i3
|
|||
will order them numerically. Also, you will be able to use +workspace number 1+
|
||||
to switch to the workspace which begins with number 1, regardless of which name
|
||||
it has. This is useful in case you are changing the workspace’s name
|
||||
dynamically.
|
||||
dynamically. To combine both commands you can use +workspace number 1: mail+ to
|
||||
specify a default name if there's currently no workspace starting with a "1".
|
||||
|
||||
==== Renaming workspaces
|
||||
|
||||
|
|
|
@ -502,7 +502,7 @@ void cmd_move_con_to_workspace_name(I3_CMD, char *name) {
|
|||
}
|
||||
|
||||
/*
|
||||
* Implementation of 'move [window|container] [to] workspace number <number>'.
|
||||
* Implementation of 'move [window|container] [to] workspace number <name>'.
|
||||
*
|
||||
*/
|
||||
void cmd_move_con_to_workspace_number(I3_CMD, char *which) {
|
||||
|
@ -526,8 +526,8 @@ void cmd_move_con_to_workspace_number(I3_CMD, char *which) {
|
|||
if (parsed_num == LONG_MIN ||
|
||||
parsed_num == LONG_MAX ||
|
||||
parsed_num < 0 ||
|
||||
*endptr != '\0') {
|
||||
LOG("Could not parse \"%s\" as a number.\n", which);
|
||||
endptr == which) {
|
||||
LOG("Could not parse initial part of \"%s\" as a number.\n", which);
|
||||
y(map_open);
|
||||
ystr("success");
|
||||
y(bool, false);
|
||||
|
@ -866,7 +866,7 @@ void cmd_workspace(I3_CMD, char *which) {
|
|||
}
|
||||
|
||||
/*
|
||||
* Implementation of 'workspace number <number>'
|
||||
* Implementation of 'workspace number <name>'
|
||||
*
|
||||
*/
|
||||
void cmd_workspace_number(I3_CMD, char *which) {
|
||||
|
@ -877,8 +877,8 @@ void cmd_workspace_number(I3_CMD, char *which) {
|
|||
if (parsed_num == LONG_MIN ||
|
||||
parsed_num == LONG_MAX ||
|
||||
parsed_num < 0 ||
|
||||
*endptr != '\0') {
|
||||
LOG("Could not parse \"%s\" as a number.\n", which);
|
||||
endptr == which) {
|
||||
LOG("Could not parse initial part of \"%s\" as a number.\n", which);
|
||||
y(map_open);
|
||||
ystr("success");
|
||||
y(bool, false);
|
||||
|
@ -897,8 +897,6 @@ void cmd_workspace_number(I3_CMD, char *which) {
|
|||
if (!workspace) {
|
||||
LOG("There is no workspace with number %ld, creating a new one.\n", parsed_num);
|
||||
ysuccess(true);
|
||||
/* terminate the which string after the endposition of the number */
|
||||
*endptr = '\0';
|
||||
workspace_show_by_name(which);
|
||||
cmd_output->needs_tree_render = true;
|
||||
return;
|
||||
|
|
|
@ -156,6 +156,34 @@ ok(!workspace_exists('5'), 'workspace 5 does not exist');
|
|||
cmd 'workspace number 5';
|
||||
ok(workspace_exists('5'), 'workspace 5 was created');
|
||||
|
||||
################################################################################
|
||||
# Check that we can go to workspace "7: foo" with the command
|
||||
# "workspace number 7: bar", i.e. the additional workspace name is ignored.
|
||||
################################################################################
|
||||
|
||||
ok(!workspace_exists('7'), 'workspace 7 does not exist');
|
||||
ok(!workspace_exists('7: bar'), 'workspace 7: bar does not exist');
|
||||
ok(!workspace_exists('7: foo'), 'workspace 7: foo does not exist yet');
|
||||
cmd 'workspace 7: foo';
|
||||
ok(workspace_exists('7: foo'), 'workspace 7: foo was created');
|
||||
cmd 'open';
|
||||
|
||||
cmd 'workspace 6';
|
||||
ok(workspace_exists('7: foo'), 'workspace 7: foo still open');
|
||||
cmd 'workspace number 7: bar';
|
||||
is(focused_ws(), '7: foo', 'now on workspace 7: foo');
|
||||
ok(!workspace_exists('7'), 'workspace 7 still does not exist');
|
||||
ok(!workspace_exists('7: bar'), 'workspace 7: bar still does not exist');
|
||||
|
||||
################################################################################
|
||||
# Check that "workspace number 8: foo" will create workspace "8: foo" if it
|
||||
# does not yet exist (just like "workspace 8: foo" would).
|
||||
################################################################################
|
||||
|
||||
ok(!workspace_exists('8: foo'), 'workspace 8: foo does not exist');
|
||||
cmd 'workspace number 8: foo';
|
||||
ok(workspace_exists('8: foo'), 'workspace 8: foo was created');
|
||||
|
||||
################################################################################
|
||||
# Verify that renaming workspaces works.
|
||||
################################################################################
|
||||
|
|
|
@ -79,6 +79,28 @@ is_num_children('12', 0, 'no container on 12 anymore');
|
|||
|
||||
ok(!workspace_exists('13'), 'workspace 13 does still not exist');
|
||||
|
||||
################################################################################
|
||||
# Check that 'move to workspace number <number><name>' works to move a window to
|
||||
# named workspaces which start with <number>.
|
||||
################################################################################
|
||||
|
||||
cmd 'workspace 15: meh';
|
||||
cmd 'open';
|
||||
is_num_children('15: meh', 1, 'one container on 15: meh');
|
||||
|
||||
ok(!workspace_exists('15'), 'workspace 15 does not exist yet');
|
||||
ok(!workspace_exists('15: duh'), 'workspace 15: duh does not exist yet');
|
||||
|
||||
cmd 'workspace 14';
|
||||
cmd 'open';
|
||||
|
||||
cmd 'move to workspace number 15: duh';
|
||||
is_num_children('15: meh', 2, 'two containers on 15: meh');
|
||||
is_num_children('14', 0, 'no container on 14 anymore');
|
||||
|
||||
ok(!workspace_exists('15'), 'workspace 15 does still not exist');
|
||||
ok(!workspace_exists('15: duh'), 'workspace 15 does still not exist');
|
||||
|
||||
###################################################################
|
||||
# check if 'move workspace next' and 'move workspace prev' work
|
||||
###################################################################
|
||||
|
|
Loading…
Reference in New Issue