LOG("should move window to workspace %s\n", name);
/* get the workspace */
- Con *ws = NULL;
- Con *output = NULL;
-
- /* first look for a workspace with this name */
- TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
- GREP_FIRST(ws, output_get_content(output), !strcasecmp(child->name, name));
- }
-
- /* if the name is plain digits, we interpret this as a "workspace number"
- * command */
- if (!ws && name_is_digits(name)) {
- long parsed_num = ws_name_to_number(name);
- TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
- GREP_FIRST(ws, output_get_content(output),
- child->num == parsed_num);
- }
- }
-
- /* if no workspace was found, make a new one */
- if (!ws)
- ws = workspace_get(name, NULL);
+ Con *ws = workspace_get(name, NULL);
ws = maybe_auto_back_and_forth_workspace(ws);
DLOG("should switch to workspace %s\n", name);
if (maybe_back_and_forth(cmd_output, name))
return;
-
- Con *ws = NULL;
- Con *output = NULL;
-
- /* first look for a workspace with this name */
- TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
- GREP_FIRST(ws, output_get_content(output), !strcasecmp(child->name, name));
- }
-
- /* if the name is only digits, we interpret this as a "workspace number"
- * command */
- if (!ws && name_is_digits(name)) {
- long parsed_num = ws_name_to_number(name);
- TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
- GREP_FIRST(ws, output_get_content(output),
- child->num == parsed_num);
- }
- }
-
- /* if no workspace was found, make a new one */
- if (!ws)
- ws = workspace_get(name, NULL);
-
- workspace_show(ws);
+ workspace_show_by_name(name);
cmd_output->needs_tree_render = true;
// XXX: default reply for now, make this a better reply
+++ /dev/null
-#!perl
-# vim:ts=4:sw=4:expandtab
-#
-# Please read the following documents before working on tests:
-# • http://build.i3wm.org/docs/testsuite.html
-# (or docs/testsuite)
-#
-# • http://build.i3wm.org/docs/lib-i3test.html
-# (alternatively: perldoc ./testcases/lib/i3test.pm)
-#
-# • http://build.i3wm.org/docs/ipc.html
-# (or docs/ipc)
-#
-# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
-# (unless you are already familiar with Perl)
-#
-# Test that `workspace {N}` acts like `workspace number {N}` when N is a plain
-# digit, and likewise for `move to workspace {N}`.
-# Ticket: #1238
-# Bug still in: 4.8-16-g3f5a0f0
-use i3test;
-
-cmd 'workspace 5:foo';
-open_window;
-fresh_workspace;
-cmd 'workspace 5';
-
-is(focused_ws, '5:foo',
- 'a command to switch to a workspace with a bare number should switch to a workspace of that number');
-
-fresh_workspace;
-my $win = open_window;
-cmd '[id="' . $win->{id} . '"] move to workspace 5';
-
-is(@{get_ws('5:foo')->{nodes}}, 2,
- 'a command to move a container to a workspace with a bare number should move that container to a workspace of that number');
-
-fresh_workspace;
-cmd 'workspace 7';
-open_window;
-cmd 'workspace 7:foo';
-$win = open_window;
-
-cmd 'workspace 7';
-is(focused_ws, '7',
- 'a workspace with a name that is a matching plain number should be preferred when switching');
-
-cmd '[id="' . $win->{id} . '"] move to workspace 7';
-is(@{get_ws('7')->{nodes}}, 2,
- 'a workspace with a name that is a matching plain number should be preferred when moving');
-
-done_testing;