From de2379a1bfab41b672b1946b3db79efb7ccffa3a Mon Sep 17 00:00:00 2001 From: david-swift Date: Wed, 4 Sep 2024 21:07:05 +0200 Subject: [PATCH] Fix modifier wrapper overwriting previous state --- Sources/Adwaita/View/Modifiers/ModifierWrapper.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Sources/Adwaita/View/Modifiers/ModifierWrapper.swift b/Sources/Adwaita/View/Modifiers/ModifierWrapper.swift index b9be8d3..15d94f6 100644 --- a/Sources/Adwaita/View/Modifiers/ModifierWrapper.swift +++ b/Sources/Adwaita/View/Modifiers/ModifierWrapper.swift @@ -45,7 +45,8 @@ struct ModifierWrapper: AdwaitaWidget { /// - type: The view render data type. /// - Returns: The view storage. func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { - let storage = content.storage(data: data, type: type) + let content = content.storage(data: data, type: type) + let storage = ViewStorage(content.pointer, content: [.mainContent: [content]]) update(storage, data: data, updateProperties: true, type: type) return storage } @@ -62,7 +63,9 @@ struct ModifierWrapper: AdwaitaWidget { updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { - content.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) + if let storage = storage.content[.mainContent]?.first { + content.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) + } guard updateProperties else { return }