root: clean up initialization
This commit is contained in:
parent
0b2c992f4d
commit
dd425a3e66
1 changed files with 17 additions and 19 deletions
|
@ -34,45 +34,43 @@ const XwaylandUnmanaged = @import("XwaylandUnmanaged.zig");
|
||||||
server: *Server,
|
server: *Server,
|
||||||
|
|
||||||
wlr_output_layout: *c.wlr_output_layout,
|
wlr_output_layout: *c.wlr_output_layout,
|
||||||
outputs: std.TailQueue(Output),
|
outputs: std.TailQueue(Output) = std.TailQueue(Output).init(),
|
||||||
|
|
||||||
/// This output is used internally when no real outputs are available.
|
/// This output is used internally when no real outputs are available.
|
||||||
/// It is not advertised to clients.
|
/// It is not advertised to clients.
|
||||||
noop_output: Output,
|
noop_output: Output = undefined,
|
||||||
|
|
||||||
/// This list stores all unmanaged Xwayland windows. This needs to be in root
|
/// 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.
|
/// 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,
|
xwayland_unmanaged_views: if (build_options.xwayland)
|
||||||
|
std.TailQueue(XwaylandUnmanaged)
|
||||||
|
else
|
||||||
|
void = if (build_options.xwayland) std.TailQueue(XwaylandUnmanaged).init(),
|
||||||
|
|
||||||
/// Number of pending configures sent in the current transaction.
|
/// Number of pending configures sent in the current transaction.
|
||||||
/// A value of 0 means there is no current transaction.
|
/// A value of 0 means there is no current transaction.
|
||||||
pending_configures: u32,
|
pending_configures: u32 = 0,
|
||||||
|
|
||||||
/// Handles timeout of transactions
|
/// Handles timeout of transactions
|
||||||
transaction_timer: *c.wl_event_source,
|
transaction_timer: *c.wl_event_source,
|
||||||
|
|
||||||
pub fn init(self: *Self, server: *Server) !void {
|
pub fn init(self: *Self, server: *Server) !void {
|
||||||
self.server = server;
|
|
||||||
|
|
||||||
// Create an output layout, which a wlroots utility for working with an
|
// Create an output layout, which a wlroots utility for working with an
|
||||||
// arrangement of screens in a physical layout.
|
// arrangement of screens in a physical layout.
|
||||||
self.wlr_output_layout = c.wlr_output_layout_create() orelse return error.OutOfMemory;
|
|
||||||
errdefer c.wlr_output_layout_destroy(self.wlr_output_layout);
|
errdefer c.wlr_output_layout_destroy(self.wlr_output_layout);
|
||||||
|
self.* = .{
|
||||||
self.outputs = std.TailQueue(Output).init();
|
.server = server,
|
||||||
|
.wlr_output_layout = c.wlr_output_layout_create() orelse return error.OutOfMemory,
|
||||||
const noop_wlr_output = c.river_wlr_noop_add_output(server.noop_backend) orelse return error.OutOfMemory;
|
.transaction_timer = c.wl_event_loop_add_timer(
|
||||||
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 = c.wl_event_loop_add_timer(
|
|
||||||
c.wl_display_get_event_loop(self.server.wl_display),
|
c.wl_display_get_event_loop(self.server.wl_display),
|
||||||
handleTimeout,
|
handleTimeout,
|
||||||
self,
|
self,
|
||||||
) orelse return error.AddTimerError;
|
) orelse return error.AddTimerError,
|
||||||
|
.noop_output = undefined,
|
||||||
|
};
|
||||||
|
|
||||||
|
const noop_wlr_output = c.river_wlr_noop_add_output(server.noop_backend) orelse return error.OutOfMemory;
|
||||||
|
try self.noop_output.init(self, noop_wlr_output);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deinit(self: *Self) void {
|
pub fn deinit(self: *Self) void {
|
||||||
|
|
Loading…
Reference in a new issue