From 7777dedd5f35ebbca89edf9dfdfe65b4a071d831 Mon Sep 17 00:00:00 2001 From: Caleb Date: Wed, 4 Mar 2026 16:27:46 -0800 Subject: [PATCH] gtk: add "Close Split" to right-click context menu Add a "Close Split" option to the split submenu in the right-click context menu, allowing users to close the focused split pane directly from the context menu. Co-Authored-By: Claude Opus 4.6 --- src/apprt/gtk/class/split_tree.zig | 10 ++++++++++ src/apprt/gtk/ui/1.2/surface.blp | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/src/apprt/gtk/class/split_tree.zig b/src/apprt/gtk/class/split_tree.zig index 311fbd8a6..1b6f4fbf6 100644 --- a/src/apprt/gtk/class/split_tree.zig +++ b/src/apprt/gtk/class/split_tree.zig @@ -186,6 +186,7 @@ pub const SplitTree = extern struct { .init("new-split", actionNewSplit, s_variant_type), .init("equalize", actionEqualize, null), .init("zoom", actionZoom, null), + .init("close-pane", actionClosePane, null), }; _ = ext.actions.addAsGroup(Self, self, "split-tree", &actions); @@ -663,6 +664,15 @@ pub const SplitTree = extern struct { self.as(gobject.Object).notifyByPspec(properties.tree.impl.param_spec); } + pub fn actionClosePane( + _: *gio.SimpleAction, + _: ?*glib.Variant, + self: *Self, + ) callconv(.c) void { + const surface = self.getActiveSurface() orelse return; + surface.close(); + } + fn surfaceCloseRequest( surface: *Surface, self: *Self, diff --git a/src/apprt/gtk/ui/1.2/surface.blp b/src/apprt/gtk/ui/1.2/surface.blp index d8483285f..698c6c364 100644 --- a/src/apprt/gtk/ui/1.2/surface.blp +++ b/src/apprt/gtk/ui/1.2/surface.blp @@ -316,6 +316,11 @@ menu context_menu_model { action: "split-tree.new-split"; target: "right"; } + + item { + label: _("Close Split"); + action: "split-tree.close-pane"; + } } submenu {