diff --git a/Ladybird/AppKit/Application/ApplicationDelegate.h b/Ladybird/AppKit/Application/ApplicationDelegate.h index e76a3a05b43..e1e349c848b 100644 --- a/Ladybird/AppKit/Application/ApplicationDelegate.h +++ b/Ladybird/AppKit/Application/ApplicationDelegate.h @@ -37,6 +37,9 @@ fromTab:(nullable Tab*)tab activateTab:(Web::HTML::ActivateTab)activate_tab; +- (void)setActiveTab:(nonnull Tab*)tab; +- (nullable Tab*)activeTab; + - (void)removeTab:(nonnull TabController*)controller; - (WebView::CookieJar&)cookieJar; diff --git a/Ladybird/AppKit/Application/ApplicationDelegate.mm b/Ladybird/AppKit/Application/ApplicationDelegate.mm index dd7efcf2617..59fd1ffd013 100644 --- a/Ladybird/AppKit/Application/ApplicationDelegate.mm +++ b/Ladybird/AppKit/Application/ApplicationDelegate.mm @@ -35,6 +35,7 @@ } @property (nonatomic, strong) NSMutableArray* managed_tabs; +@property (nonatomic, strong) Tab* active_tab; @property (nonatomic, strong) TaskManagerController* task_manager_controller; @@ -119,6 +120,16 @@ return controller; } +- (void)setActiveTab:(Tab*)tab +{ + self.active_tab = tab; +} + +- (Tab*)activeTab +{ + return self.active_tab; +} + - (void)removeTab:(TabController*)controller { [self.managed_tabs removeObject:controller]; diff --git a/Ladybird/AppKit/UI/TabController.mm b/Ladybird/AppKit/UI/TabController.mm index 278d06c5fbd..9056cfa8821 100644 --- a/Ladybird/AppKit/UI/TabController.mm +++ b/Ladybird/AppKit/UI/TabController.mm @@ -520,10 +520,19 @@ static NSString* const TOOLBAR_TAB_OVERVIEW_IDENTIFIER = @"ToolbarTabOverviewIde [self.window makeKeyAndOrderFront:sender]; [self focusLocationToolbarItem]; + + auto* delegate = (ApplicationDelegate*)[NSApp delegate]; + [delegate setActiveTab:[self tab]]; } #pragma mark - NSWindowDelegate +- (void)windowDidBecomeMain:(NSNotification*)notification +{ + auto* delegate = (ApplicationDelegate*)[NSApp delegate]; + [delegate setActiveTab:[self tab]]; +} + - (void)windowWillClose:(NSNotification*)notification { [[self tab] tabWillClose];