From 07d6a38edcf618a95e3cc84ad11f3b1166758e09 Mon Sep 17 00:00:00 2001 From: david-swift Date: Fri, 30 Jan 2026 14:49:10 +0100 Subject: [PATCH] Remove old style context providers in (css) #74 --- Sources/Adwaita/View/AnyView++.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/Adwaita/View/AnyView++.swift b/Sources/Adwaita/View/AnyView++.swift index ffb762d..8206de5 100644 --- a/Sources/Adwaita/View/AnyView++.swift +++ b/Sources/Adwaita/View/AnyView++.swift @@ -341,6 +341,7 @@ extension AnyView { public func css(_ getString: @escaping () -> String) -> AnyView { inspect { storage, updateProperties in let cssID = "internal-css" + let providerID = "internal-css-provider" let previous = storage.fields[cssID] as? String let string = getString() if updateProperties, string != previous { @@ -357,6 +358,13 @@ extension AnyView { ) g_object_unref(provider) storage.fields[cssID] = string + if let oldProvider = storage.fields[providerID] as? OpaquePointer { + gtk_style_context_remove_provider_for_display( + display, + oldProvider + ) + } + storage.fields[providerID] = provider?.opaque() } } }