fix: main menu open position (macOS 10.15)

This commit is contained in:
relikd
2025-07-21 09:12:22 +02:00
parent f2bdc5b555
commit fc6c3a3df2
2 changed files with 13 additions and 13 deletions

View File

@@ -70,7 +70,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>15899</string> <string>15907</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.news</string> <string>public.app-category.news</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>

View File

@@ -24,7 +24,9 @@
self.unreadCountTotal = 0; self.unreadCountTotal = 0;
self.statusItem.button.image = [NSImage imageNamed:RSSImageMenuBarIconActive]; self.statusItem.button.image = [NSImage imageNamed:RSSImageMenuBarIconActive];
self.statusItem.button.image.template = YES; self.statusItem.button.image.template = YES;
[self.statusItem.button action:@selector(openMainMenu) target:self]; // Add empty menu (will be populated once opened)
self.statusItem.menu = [[NSMenu alloc] initWithTitle:@"M"];
self.statusItem.menu.delegate = self;
// Some icon unread count notification callback methods // Some icon unread count notification callback methods
RegisterNotification(kNotificationNetworkStatusChanged, @selector(networkChanged:), self); RegisterNotification(kNotificationNetworkStatusChanged, @selector(networkChanged:), self);
RegisterNotification(kNotificationTotalUnreadCountChanged, @selector(unreadCountChanged:), self); RegisterNotification(kNotificationTotalUnreadCountChanged, @selector(unreadCountChanged:), self);
@@ -139,24 +141,22 @@
#pragma mark - Main Menu Handling #pragma mark - Main Menu Handling
- (void)openMainMenu { -(void)menuWillOpen:(NSMenu *)menu {
_mainMenu = menu; // autoreleased once closed
self.barMenu = [[BarMenu alloc] initWithStatusItem:self]; self.barMenu = [[BarMenu alloc] initWithStatusItem:self];
NSMenu *m = [[NSMenu alloc] initWithTitle:@"M"]; [self insertMainMenuHeader:menu];
m.delegate = self; [self.barMenu menuNeedsUpdate:menu];
[self insertMainMenuHeader:m];
[self.barMenu menuNeedsUpdate:m];
// Add main menu items 'Preferences' and 'Quit'. // Add main menu items 'Preferences' and 'Quit'.
[m addItem:[NSMenuItem separatorItem]]; [menu addItem:[NSMenuItem separatorItem]];
[m addItemWithTitle:NSLocalizedString(@"Preferences", nil) action:@selector(openPreferences) keyEquivalent:@","]; [menu addItemWithTitle:NSLocalizedString(@"Preferences", nil) action:@selector(openPreferences) keyEquivalent:@","];
[m addItemWithTitle:NSLocalizedString(@"Quit", nil) action:@selector(terminate:) keyEquivalent:@"q"]; [menu addItemWithTitle:NSLocalizedString(@"Quit", nil) action:@selector(terminate:) keyEquivalent:@"q"];
_mainMenu = m; // autoreleased once closed
[m popUpMenuPositioningItem:nil atLocation:NSZeroPoint inView:self.statusItem.button];
} }
-(void)menuDidClose:(NSMenu *)menu { -(void)menuDidClose:(NSMenu *)menu {
self.barMenu = nil; self.barMenu = nil;
self.statusItem.menu = [[NSMenu alloc] initWithTitle:@"M"];
self.statusItem.menu.delegate = self;
} }
- (void)insertMainMenuHeader:(NSMenu*)menu { - (void)insertMainMenuHeader:(NSMenu*)menu {