aboutsummaryrefslogtreecommitdiff
path: root/src/Root.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Root.zig')
-rw-r--r--src/Root.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Root.zig b/src/Root.zig
index 8483969..f87d7ae 100644
--- a/src/Root.zig
+++ b/src/Root.zig
@@ -18,6 +18,7 @@
const Self = @This();
const std = @import("std");
+const build_options = @import("build_options");
const c = @import("c.zig");
@@ -26,6 +27,7 @@ const Output = @import("Output.zig");
const Server = @import("Server.zig");
const View = @import("View.zig");
const ViewStack = @import("view_stack.zig").ViewStack;
+const XwaylandUnmanaged = @import("XwaylandUnmanaged.zig");
/// Responsible for all windowing operations
server: *Server,
@@ -37,6 +39,10 @@ outputs: std.TailQueue(Output),
/// It is not advertised to clients.
noop_output: Output,
+/// This list stores all unmanaged Xwayland windows. This needs to be in root
+/// since X is like the wild west and who knows where these things will go.
+xwayland_unmanaged_views: if (build_options.xwayland) std.TailQueue(XwaylandUnmanaged) else void,
+
/// Number of pending configures sent in the current transaction.
/// A value of 0 means there is no current transaction.
pending_configures: u32,
@@ -59,6 +65,10 @@ pub fn init(self: *Self, server: *Server) !void {
return error.CantAddNoopOutput;
try self.noop_output.init(self, noop_wlr_output);
+ if (build_options.xwayland) {
+ self.xwayland_unmanaged_views = std.TailQueue(XwaylandUnmanaged).init();
+ }
+
self.pending_configures = 0;
self.transaction_timer = null;