config: use hash sets for filters, clean up code

This commit is contained in:
Isaac Freund
2021-07-12 19:37:56 +02:00
parent 968aef3459
commit 7b18b4944e
5 changed files with 77 additions and 98 deletions

View File

@ -18,6 +18,7 @@
const Self = @This();
const std = @import("std");
const mem = std.mem;
const wlr = @import("wlroots");
const wl = @import("wayland").server.wl;
@ -62,11 +63,9 @@ fn handleRequestMode(
const self = @fieldParentPtr(Self, "request_mode", listener);
const toplevel = self.xdg_toplevel_decoration.surface.role_data.toplevel;
const app_id: [*:0]const u8 = if (toplevel.app_id) |id| id else "NULL";
_ = self.xdg_toplevel_decoration.setMode(
for (server.config.csd_filter.items) |filter_app_id| {
if (std.mem.eql(u8, std.mem.span(app_id), filter_app_id)) break .client_side;
} else .server_side,
);
if (toplevel.app_id != null and server.config.csd_filter.contains(mem.span(toplevel.app_id.?))) {
_ = self.xdg_toplevel_decoration.setMode(.client_side);
} else {
_ = self.xdg_toplevel_decoration.setMode(.server_side);
}
}