git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit67807a6b6986d363f4d7ddd74dab5815aded44a8
parentefc20bb659
authorIsaac Freund <[email protected]>
date2021-07-27 14:45
output: fix debug log on tag change

 river/OutputStatus.zig | 7 +++----
 river/Root.zig         | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/river/OutputStatus.zig b/river/OutputStatus.zig
index cc6a041..e6e6045 100644
--- a/river/OutputStatus.zig
+++ b/river/OutputStatus.zig
@@ -40,7 +40,7 @@ pub fn init(self: *Self, output: *Output, output_status: *zriver.OutputStatusV1)
 
     // Send view/focused tags once on bind.
     self.sendViewTags();
-    self.sendFocusedTags();
+    self.sendFocusedTags(output.current.tags);
 }
 
 fn handleRequest(output_status: *zriver.OutputStatusV1, request: zriver.OutputStatusV1.Request, self: *Self) void {
@@ -73,7 +73,6 @@ pub fn sendViewTags(self: Self) void {
     self.output_status.sendViewTags(&wl_array);
 }
 
-/// Send the currently focused tags of the output to the client.
-pub fn sendFocusedTags(self: Self) void {
-    self.output_status.sendFocusedTags(self.output.current.tags);
+pub fn sendFocusedTags(self: Self, tags: u32) void {
+    self.output_status.sendFocusedTags(tags);
 }
diff --git a/river/Root.zig b/river/Root.zig
index 79e1d49..94f6d0a 100644
--- a/river/Root.zig
+++ b/river/Root.zig
@@ -368,16 +368,15 @@ fn commitTransaction(self: *Self) void {
         const output = &output_node.data;
 
         // Apply pending state of the output
-        const output_tags_changed = output.pending.tags != output.current.tags;
-        output.current = output.pending;
-        if (output_tags_changed) {
+        if (output.pending.tags != output.current.tags) {
             std.log.scoped(.output).debug(
                 "changing current focus: {b:0>10} to {b:0>10}",
                 .{ output.current.tags, output.pending.tags },
             );
             var it = output.status_trackers.first;
-            while (it) |node| : (it = node.next) node.data.sendFocusedTags();
+            while (it) |node| : (it = node.next) node.data.sendFocusedTags(output.pending.tags);
         }
+        output.current = output.pending;
 
         var view_tags_changed = false;