macos: fix previous/next tab bindings, improve action logging

This commit is contained in:
Mitchell Hashimoto
2024-09-27 12:05:04 -07:00
parent 2c2a765d66
commit 7befb5a418
4 changed files with 11 additions and 6 deletions

View File

@ -379,9 +379,9 @@ typedef struct {
// apprt.action.GotoTab // apprt.action.GotoTab
typedef enum { typedef enum {
GHOSTTY_GOTO_TAB_PREVIOUS, GHOSTTY_GOTO_TAB_PREVIOUS = -1,
GHOSTTY_GOTO_TAB_NEXT, GHOSTTY_GOTO_TAB_NEXT = -2,
GHOSTTY_GOTO_TAB_LAST, GHOSTTY_GOTO_TAB_LAST = -3,
} ghostty_action_goto_tab_e; } ghostty_action_goto_tab_e;
// apprt.action.Fullscreen // apprt.action.Fullscreen

View File

@ -734,7 +734,7 @@ class TerminalController: NSWindowController, NSWindowDelegate,
// Get the tab index from the notification // Get the tab index from the notification
guard let tabEnumAny = notification.userInfo?[Ghostty.Notification.GotoTabKey] else { return } guard let tabEnumAny = notification.userInfo?[Ghostty.Notification.GotoTabKey] else { return }
guard let tabEnum = tabEnumAny as? ghostty_action_goto_tab_e else { return } guard let tabEnum = tabEnumAny as? ghostty_action_goto_tab_e else { return }
let tabIndex: Int32 = .init(bitPattern: tabEnum.rawValue) let tabIndex: Int32 = tabEnum.rawValue
guard let windowController = window.windowController else { return } guard let windowController = window.windowController else { return }
guard let tabGroup = windowController.window?.tabGroup else { return } guard let tabGroup = windowController.window?.tabGroup else { return }

View File

@ -139,7 +139,7 @@ pub fn addSurface(self: *App, rt_surface: *apprt.Surface) !void {
// It is up to the apprt if there is a quit timer at all and if it // It is up to the apprt if there is a quit timer at all and if it
// should be canceled. // should be canceled.
rt_surface.app.performAction( rt_surface.app.performAction(
.{ .surface = &rt_surface.core_surface }, .app,
.quit_timer, .quit_timer,
.stop, .stop,
) catch |err| { ) catch |err| {
@ -173,7 +173,7 @@ pub fn deleteSurface(self: *App, rt_surface: *apprt.Surface) void {
// If we have no surfaces, we can start the quit timer. It is up to the // If we have no surfaces, we can start the quit timer. It is up to the
// apprt to determine if this is necessary. // apprt to determine if this is necessary.
if (self.surfaces.items.len == 0) rt_surface.app.performAction( if (self.surfaces.items.len == 0) rt_surface.app.performAction(
.{ .surface = &rt_surface.core_surface }, .app,
.quit_timer, .quit_timer,
.start, .start,
) catch |err| { ) catch |err| {

View File

@ -441,6 +441,11 @@ pub const App = struct {
else => {}, else => {},
} }
log.debug("dispatching action target={s} action={} value={}", .{
@tagName(target),
action,
value,
});
self.opts.action( self.opts.action(
self, self,
target.cval(), target.cval(),