From 46fb3d8c9f000d7fe547e3d472db4ceb141cb9a7 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Mon, 16 Sep 2024 15:16:06 -0500 Subject: [PATCH 1/4] apprt/gtk: add notebook widget to the main box Mitchell dropped this as part of a cleanup in the PR which added AdwToastOverlay. Fixes: https://github.com/ghostty-org/ghostty/issues/2250 Link: https://github.com/ghostty-org/ghostty/pull/2235 Signed-off-by: Tristan Partin --- src/apprt/gtk/Window.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index 08c518acf..88ec09123 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -218,7 +218,10 @@ pub fn init(self: *Window, app: *App) !void { ); c.gtk_box_append(@ptrCast(box), toast_overlay); break :toast toast_overlay; - } else null; + } else toast: { + c.gtk_box_append(@ptrCast(box), self.notebook.asWidget()); + break :toast null; + }; // If we have a tab overview then we can set it on our notebook. if (tab_overview_) |tab_overview| { From 4f2c1d1b101135aec91fc1fafecd576f161b0c52 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Mon, 16 Sep 2024 15:36:10 -0500 Subject: [PATCH 2/4] apprt/gtk: use adwaita toasts regardless of gtk-titlebar Signed-off-by: Tristan Partin --- src/apprt/gtk/Window.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index 88ec09123..235d3d587 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -210,7 +210,7 @@ pub fn init(self: *Window, app: *App) !void { self.notebook = Notebook.create(self); // Setup our toast overlay if we have one - self.toast_overlay = if (self.isAdwWindow()) toast: { + self.toast_overlay = if (adwaita.enabled(&self.app.config)) toast: { const toast_overlay = c.adw_toast_overlay_new(); c.adw_toast_overlay_set_child( @ptrCast(toast_overlay), From 2ad4dcdc0152f541bc1ebc640ec2f0cee1d60bc3 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Mon, 16 Sep 2024 15:42:38 -0500 Subject: [PATCH 3/4] apprt/gtk: remove redundant adwaita check We already check if the toast overlay exists before sending a toast. Signed-off-by: Tristan Partin --- src/apprt/gtk/Window.zig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index 235d3d587..4010b2721 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -727,9 +727,7 @@ fn gtkActionCopy( return; }; - if (self.isAdwWindow()) { - self.sendToast("Copied to clipboard"); - } + self.sendToast("Copied to clipboard"); } fn gtkActionPaste( From fca7ceed031a316418dfb5cc98d3667829719452 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 16 Sep 2024 15:08:34 -0700 Subject: [PATCH 4/4] apprt/gtk: fix non-libadw builds --- src/apprt/gtk/Window.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index 4010b2721..112190179 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -485,6 +485,7 @@ pub fn onConfigReloaded(self: *Window) void { } fn sendToast(self: *Window, title: [:0]const u8) void { + if (comptime !adwaita.versionAtLeast(0, 0, 0)) return; const toast_overlay = self.toast_overlay orelse return; const toast = c.adw_toast_new(title); c.adw_toast_set_timeout(toast, 3);