diff --git a/src/core/Linux.zig b/src/core/Linux.zig index a1fc7706..87bfb16e 100644 --- a/src/core/Linux.zig +++ b/src/core/Linux.zig @@ -103,6 +103,7 @@ pub fn init( .wayland => blk: { const wayland = Wayland.init(linux, core, options) catch |err| { const err_msg = switch (err) { + error.NoServerSideDecorationSupport => "Server Side Decorations aren't supported", error.LibraryNotFound => "Missing Wayland library", error.FailedToConnectToDisplay => "Failed to connect to Wayland display", else => "An unknown error occured while trying to connect to Wayland", diff --git a/src/core/linux/Wayland.zig b/src/core/linux/Wayland.zig index 1c35d21d..87ccb83f 100644 --- a/src/core/linux/Wayland.zig +++ b/src/core/linux/Wayland.zig @@ -118,6 +118,10 @@ pub fn init( //Round trip to get all initial output events _ = wl.libwaylandclient.wl_display_roundtrip(wl.display); + if (wl.interfaces.zxdg_decoration_manager_v1 == null) { + return error.NoServerSideDecorationSupport; + } + //Setup surface wl.surface = c.wl_compositor_create_surface(wl.interfaces.wl_compositor) orelse return error.UnableToCreateSurface; wl.surface_descriptor = try options.allocator.create(gpu.Surface.DescriptorFromWaylandSurface);