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

commit637bc237c4e612afcd25b18f4e3f4f30edff4d59
parent7f878f6320
authorIsaac Freund <[email protected]>
date2023-03-01 19:03
Root: fix use of view.current before update

In commitTransaction() we currently the current view state to determine
whether or not to enable the view's scene tree. However we don't update
the view's current state until after that check.

 river/Root.zig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/river/Root.zig b/river/Root.zig
index c86822e..9fb516f 100644
--- a/river/Root.zig
+++ b/river/Root.zig
@@ -617,6 +617,8 @@ fn commitTransaction(root: *Self) void {
                 view.popup_tree.node.reparent(output.layers.popups);
             }
 
+            view.updateCurrent();
+
             const enabled = view.current.tags & output.current.tags != 0;
             view.tree.node.setEnabled(enabled);
             view.popup_tree.node.setEnabled(enabled);
@@ -624,8 +626,6 @@ fn commitTransaction(root: *Self) void {
                 // TODO this approach for syncing the order will likely cause over-damaging.
                 view.tree.node.lowerToBottom();
             }
-
-            view.updateCurrent();
         }
 
         if (output.inflight.fullscreen != output.current.fullscreen) {