diff --git a/src/apprt/gtk/Tab.zig b/src/apprt/gtk/Tab.zig index d6a561322..875e80d58 100644 --- a/src/apprt/gtk/Tab.zig +++ b/src/apprt/gtk/Tab.zig @@ -108,13 +108,9 @@ pub fn init(self: *Tab, window: *Window, parent_: ?*CoreSurface) !void { c.gtk_box_append(self.box, gl_area_widget); // Add the notebook page (create tab). - const parent_page_idx = parent_page_idx: { - // If this option is enabled we append the new tab to the end of the notebook. - if (window.app.config.@"window-append-new-tabs") { - break :parent_page_idx c.gtk_notebook_get_n_pages(window.notebook); - } - // Otherwise we add it after the current tab. - break :parent_page_idx c.gtk_notebook_get_current_page(window.notebook) + 1; + const parent_page_idx = switch (window.app.config.@"window-new-tab-position") { + .current => c.gtk_notebook_get_current_page(window.notebook) + 1, + .end => c.gtk_notebook_get_n_pages(window.notebook), }; const page_idx = c.gtk_notebook_insert_page( diff --git a/src/config/Config.zig b/src/config/Config.zig index 41d4dc1f3..d5826f76a 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -656,9 +656,14 @@ keybind: Keybinds = .{}, /// Currently only supported on macOS. @"window-step-resize": bool = false, -/// Append new tabs to the end of the tab list instead of right after the -/// current tab. -@"window-append-new-tabs": bool = false, +/// The position where new tabs are created. Valid values: +/// +/// - "current" - Insert the new tab after the currently focused tab, +/// or at the end if there are no focused tabs. +/// - "end" - Insert the new tab at the end of the tab list. +/// +/// This configuration currently only works with GTK. +@"window-new-tab-position": WindowNewTabPosition = .current, /// When enabled, the full GTK titlebar is displayed instead of your window /// manager's simple titlebar. The behavior of this option will vary with your @@ -2899,6 +2904,12 @@ pub const WindowSaveState = enum { always, }; +/// See window-new-tab-position +pub const WindowNewTabPosition = enum { + current, + end, +}; + /// See grapheme-width-method pub const GraphemeWidthMethod = enum { wcswidth,