From 3dbbbdee0b48ad7605badf76093e07646ebc8f2d Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Mon, 17 Feb 2025 11:14:39 -0600 Subject: [PATCH] gtk: fix closing window when last tab is closed --- src/apprt/gtk/TabView.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/apprt/gtk/TabView.zig b/src/apprt/gtk/TabView.zig index 735826214..156fd0b93 100644 --- a/src/apprt/gtk/TabView.zig +++ b/src/apprt/gtk/TabView.zig @@ -193,6 +193,10 @@ pub fn addTab(self: *TabView, tab: *Tab, title: [:0]const u8) void { } pub fn closeTab(self: *TabView, tab: *Tab) void { + // Save a pointer to the GTK window in case we need it later. It may be + // impossible to access later due to how resources are cleaned up. + const window: *gtk.Window = @ptrCast(@alignCast(self.window.window)); + // closeTab always expects to close unconditionally so we mark this // as true so that the close_page call below doesn't request // confirmation. @@ -220,6 +224,8 @@ pub fn closeTab(self: *TabView, tab: *Tab) void { const box: *gtk.Box = @ptrCast(@alignCast(tab.box)); box.as(gobject.Object).unref(); } + + window.destroy(); } }