From 4c7aa7acb8bd533bb9eb9cb73f49e6e99a2989c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Sat, 22 Aug 2026 19:07:55 +0300 Subject: [PATCH] [macOS 27] Fix missing menu icons. --- platform/macos/native_menu_macos.mm | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/platform/macos/native_menu_macos.mm b/platform/macos/native_menu_macos.mm index db89d4b9766d..18681dcc91e7 100644 --- a/platform/macos/native_menu_macos.mm +++ b/platform/macos/native_menu_macos.mm @@ -540,6 +540,15 @@ NSImage *image = ds->_convert_to_nsimg(obj->img); [image setSize:NSMakeSize(16, 16)]; [menu_item setImage:image]; +#if (__MAC_OS_X_VERSION_MAX_ALLOWED < 270000) + if ([menu_item respondsToSelector:@selector(preferredImageVisibility)]) { + [menu_item setValue:@(1) forKey:@"preferredImageVisibility"]; + } +#else + if (@available(macOS 27.0, *)) { + menu_item.preferredImageVisibility = NSMenuItemImageVisibilityVisible; + } +#endif } [menu_item setKeyEquivalentModifierMask:KeyMappingMacOS::keycode_get_native_mask(p_accel)]; [menu_item setRepresentedObject:obj]; @@ -571,6 +580,15 @@ NSImage *image = ds->_convert_to_nsimg(obj->img); [image setSize:NSMakeSize(16, 16)]; [menu_item setImage:image]; +#if (__MAC_OS_X_VERSION_MAX_ALLOWED < 270000) + if ([menu_item respondsToSelector:@selector(preferredImageVisibility)]) { + [menu_item setValue:@(1) forKey:@"preferredImageVisibility"]; + } +#else + if (@available(macOS 27.0, *)) { + menu_item.preferredImageVisibility = NSMenuItemImageVisibilityVisible; + } +#endif } [menu_item setKeyEquivalentModifierMask:KeyMappingMacOS::keycode_get_native_mask(p_accel)]; [menu_item setRepresentedObject:obj]; @@ -622,6 +640,15 @@ NSImage *image = ds->_convert_to_nsimg(obj->img); [image setSize:NSMakeSize(16, 16)]; [menu_item setImage:image]; +#if (__MAC_OS_X_VERSION_MAX_ALLOWED < 270000) + if ([menu_item respondsToSelector:@selector(preferredImageVisibility)]) { + [menu_item setValue:@(1) forKey:@"preferredImageVisibility"]; + } +#else + if (@available(macOS 27.0, *)) { + menu_item.preferredImageVisibility = NSMenuItemImageVisibilityVisible; + } +#endif } [menu_item setKeyEquivalentModifierMask:KeyMappingMacOS::keycode_get_native_mask(p_accel)]; [menu_item setRepresentedObject:obj]; @@ -1383,6 +1410,15 @@ NSImage *image = ds->_convert_to_nsimg(obj->img); [image setSize:NSMakeSize(16, 16)]; [menu_item setImage:image]; +#if (__MAC_OS_X_VERSION_MAX_ALLOWED < 270000) + if ([menu_item respondsToSelector:@selector(preferredImageVisibility)]) { + [menu_item setValue:@(1) forKey:@"preferredImageVisibility"]; + } +#else + if (@available(macOS 27.0, *)) { + menu_item.preferredImageVisibility = NSMenuItemImageVisibilityVisible; + } +#endif } else { obj->img = Ref(); [menu_item setImage:nil];