From 684f26acac6ce89498b5ed0dcdd71e7c262d9297 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 6 Mar 2023 16:30:42 +0100 Subject: [PATCH] river: improve comments on pending/inflight/current --- river/Output.zig | 7 +++---- river/View.zig | 12 ++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/river/Output.zig b/river/Output.zig index 839fedf..7a94275 100644 --- a/river/Output.zig +++ b/river/Output.zig @@ -94,13 +94,12 @@ lock_render_state: enum { /// The state of the output that is directly acted upon/modified through user input. /// -/// Pending state will be copied to the pending state and communicated to clients +/// Pending state will be copied to the inflight state and communicated to clients /// to be applied as a single atomic transaction across all clients as soon as any /// in progress transaction has been completed. /// -/// On completion of a transaction -/// Any time pending state is modified Root.dirty must be set. -/// +/// Any time pending state is modified Root.applyPending() must be called +/// before yielding back to the event loop. pending: struct { /// A bit field of focused tags tags: u32 = 1 << 0, diff --git a/river/View.zig b/river/View.zig index 7dba9a3..5589376 100644 --- a/river/View.zig +++ b/river/View.zig @@ -130,14 +130,26 @@ mapped: bool = false, /// transaction completes. See View.destroy() destroying: bool = false, +/// The state of the view that is directly acted upon/modified through user input. +/// +/// Pending state will be copied to the inflight state and communicated to clients +/// to be applied as a single atomic transaction across all clients as soon as any +/// in progress transaction has been completed. +/// +/// Any time pending state is modified Root.applyPending() must be called +/// before yielding back to the event loop. pending: State = .{}, pending_focus_stack_link: wl.list.Link, pending_wm_stack_link: wl.list.Link, +/// The state most recently sent to the layout generator and clients. +/// This state is immutable until all clients have replied and the transaction +/// is completed, at which point this inflight state is copied to current. inflight: State = .{}, inflight_focus_stack_link: wl.list.Link, inflight_wm_stack_link: wl.list.Link, +/// The current state represented by the scene graph. current: State = .{}, /// The floating dimensions the view, saved so that they can be restored if the