Remove old style context providers in (css) #74
Some checks failed
Deploy Docs / publish (push) Has been cancelled
SwiftLint / SwiftLint (push) Has been cancelled

This commit is contained in:
david-swift 2026-01-30 14:49:10 +01:00
parent 29194341e2
commit 07d6a38edc

View File

@ -341,6 +341,7 @@ extension AnyView {
public func css(_ getString: @escaping () -> String) -> AnyView { public func css(_ getString: @escaping () -> String) -> AnyView {
inspect { storage, updateProperties in inspect { storage, updateProperties in
let cssID = "internal-css" let cssID = "internal-css"
let providerID = "internal-css-provider"
let previous = storage.fields[cssID] as? String let previous = storage.fields[cssID] as? String
let string = getString() let string = getString()
if updateProperties, string != previous { if updateProperties, string != previous {
@ -357,6 +358,13 @@ extension AnyView {
) )
g_object_unref(provider) g_object_unref(provider)
storage.fields[cssID] = string 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()
} }
} }
} }