]> git.sur5r.net Git - i3/i3/blobdiff - src/workspace.c
Introduce output_primary_name function
[i3/i3] / src / workspace.c
index 0c80f69f78977a4335c7c04fe2ccdf43ebd77e77..4b350b822730938ea4f0d6f73ef1b34b9d6e2909 100644 (file)
@@ -1,5 +1,3 @@
-#undef I3__FILE__
-#define I3__FILE__ "workspace.c"
 /*
  * vim:ts=4:sw=4:expandtab
  *
@@ -190,7 +188,7 @@ Con *create_workspace_on_output(Output *output, Con *content) {
         struct Workspace_Assignment *assignment;
         TAILQ_FOREACH(assignment, &ws_assignments, ws_assignments) {
             if (strcmp(assignment->name, target_name) != 0 ||
-                strcmp(assignment->output, output->name) == 0)
+                strcmp(assignment->output, output_primary_name(output)) == 0)
                 continue;
 
             assigned = true;
@@ -911,17 +909,12 @@ Con *workspace_encapsulate(Con *ws) {
 bool workspace_move_to_output(Con *ws, const char *name) {
     LOG("Trying to move workspace %p / %s to output \"%s\".\n", ws, ws->name, name);
 
-    Con *current_output_con = con_get_output(ws);
-    if (!current_output_con) {
-        ELOG("Could not get the output container for workspace %p / %s.\n", ws, ws->name);
-        return false;
-    }
-
-    Output *current_output = get_output_by_name(current_output_con->name);
-    if (!current_output) {
+    Output *current_output = get_output_for_con(ws);
+    if (current_output == NULL) {
         ELOG("Cannot get current output. This is a bug in i3.\n");
         return false;
     }
+
     Output *output = get_output_from_string(current_output, name);
     if (!output) {
         ELOG("Could not get output from string \"%s\"\n", name);
@@ -942,7 +935,7 @@ bool workspace_move_to_output(Con *ws, const char *name) {
         bool used_assignment = false;
         struct Workspace_Assignment *assignment;
         TAILQ_FOREACH(assignment, &ws_assignments, ws_assignments) {
-            if (assignment->output == NULL || strcmp(assignment->output, current_output->name) != 0)
+            if (assignment->output == NULL || strcmp(assignment->output, output_primary_name(current_output)) != 0)
                 continue;
 
             /* check if this workspace is already attached to the tree */