diff --git a/UI/AppKit/Interface/Tab.mm b/UI/AppKit/Interface/Tab.mm index da3ba1f5146..d2a875d2b64 100644 --- a/UI/AppKit/Interface/Tab.mm +++ b/UI/AppKit/Interface/Tab.mm @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -348,17 +347,8 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800; - (void)onFaviconChange:(Gfx::Bitmap const&)bitmap { - auto png = Gfx::PNGWriter::encode(bitmap); - if (png.is_error()) { - return; - } - - auto* data = [NSData dataWithBytes:png.value().data() - length:png.value().size()]; - - auto* favicon = [[NSImage alloc] initWithData:data]; + auto* favicon = Ladybird::gfx_bitmap_to_ns_image(bitmap); [favicon setResizingMode:NSImageResizingModeStretch]; - self.favicon = favicon; [self updateTabTitleAndFavicon]; } diff --git a/UI/AppKit/Utilities/Conversions.h b/UI/AppKit/Utilities/Conversions.h index 5fdfdeae5e3..b50c5539ffc 100644 --- a/UI/AppKit/Utilities/Conversions.h +++ b/UI/AppKit/Utilities/Conversions.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -40,4 +41,6 @@ NSColor* gfx_color_to_ns_color(Gfx::Color); Gfx::IntPoint compute_origin_relative_to_window(NSWindow*, Gfx::IntPoint); +NSImage* gfx_bitmap_to_ns_image(Gfx::Bitmap const&); + } diff --git a/UI/AppKit/Utilities/Conversions.mm b/UI/AppKit/Utilities/Conversions.mm index 192d9eaddad..cfa2e8cf7d2 100644 --- a/UI/AppKit/Utilities/Conversions.mm +++ b/UI/AppKit/Utilities/Conversions.mm @@ -1,9 +1,12 @@ /* * Copyright (c) 2023, Tim Flynn + * Copyright (c) 2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ +#include + #import namespace Ladybird { @@ -128,4 +131,16 @@ Gfx::IntPoint compute_origin_relative_to_window(NSWindow* window, Gfx::IntPoint return position; } +NSImage* gfx_bitmap_to_ns_image(Gfx::Bitmap const& bitmap) +{ + auto png = Gfx::PNGWriter::encode(bitmap); + if (png.is_error()) + return nullptr; + + auto* data = [NSData dataWithBytes:png.value().data() + length:png.value().size()]; + + return [[NSImage alloc] initWithData:data]; +} + }