mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-10-13 13:26:09 +00:00
gtk(wayland): prevent gtk4-layer-shell crash on old versions
Supersedes #7154 In gtk4-layer-shell versions < 1.0.4, the app could crash upon opening a quick terminal window on certain compositors that implement the `xdg_wm_dialog_v1` protocol. The exact reason is a bit complicated, but is nicely summarized in the upstream issue (wmww/gtk4-layer-shell#50). The circumstances that could cause this crash to occur should gradually diminish as distros update to newer gtk4-layer-shell versions, but this is known to crash on Fedora 41 and Hyprland, which could be a sizable chunk of our userbase given that this would also occur on GNOME/Mutter and KDE/KWin. The diff should be minimal enough that this can be removed or reverted once this band-aid fix is no longer necessary.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
const std = @import("std");
|
||||
|
||||
const c = @cImport({
|
||||
@cInclude("gtk4-layer-shell.h");
|
||||
});
|
||||
@@ -31,6 +33,14 @@ pub fn getProtocolVersion() c_uint {
|
||||
return c.gtk_layer_get_protocol_version();
|
||||
}
|
||||
|
||||
pub fn getLibraryVersion() std.SemanticVersion {
|
||||
return .{
|
||||
.major = c.gtk_layer_get_major_version(),
|
||||
.minor = c.gtk_layer_get_minor_version(),
|
||||
.patch = c.gtk_layer_get_micro_version(),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn initForWindow(window: *gtk.Window) void {
|
||||
c.gtk_layer_init_for_window(@ptrCast(window));
|
||||
}
|
||||
|
Reference in New Issue
Block a user