diff --git a/Sources/OpenSwiftUICore/Graph/GraphHost.swift b/Sources/OpenSwiftUICore/Graph/GraphHost.swift index 7ace78801..c9146ea81 100644 --- a/Sources/OpenSwiftUICore/Graph/GraphHost.swift +++ b/Sources/OpenSwiftUICore/Graph/GraphHost.swift @@ -67,6 +67,10 @@ open class GraphHost: CustomReflectable { package init() { let graph = Graph(shared: GraphHost.sharedGraph) let globalSubgraph = Subgraph(graph: graph) + let oldCurrentSubgraph = Subgraph.current + defer { + Subgraph.current = oldCurrentSubgraph + } Subgraph.current = globalSubgraph let time = Attribute(value: Time.zero) let environment = Attribute(value: EnvironmentValues()) @@ -84,7 +88,6 @@ open class GraphHost: CustomReflectable { let rootSubgrph = Subgraph(graph: graph) globalSubgraph.addChild(rootSubgrph) - Subgraph.current = nil self.graph = graph self.globalSubgraph = globalSubgraph diff --git a/Sources/OpenSwiftUICore/View/Graph/ViewGraph.swift b/Sources/OpenSwiftUICore/View/Graph/ViewGraph.swift index 15c5fd535..28ee3ae3e 100644 --- a/Sources/OpenSwiftUICore/View/Graph/ViewGraph.swift +++ b/Sources/OpenSwiftUICore/View/Graph/ViewGraph.swift @@ -148,6 +148,10 @@ package final class ViewGraph: GraphHost { self.rootViewType = rootViewType self.requestedOutputs = requestedOutputs let data = GraphHost.Data() + let oldCurrentSubgraph = Subgraph.current + defer { + Subgraph.current = oldCurrentSubgraph + } Subgraph.current = data.globalSubgraph rootView = Attribute(type: Root.self).identifier _rootTransform = Attribute(RootTransform()) @@ -188,7 +192,6 @@ package final class ViewGraph: GraphHost { } } super.init(data: data) - Subgraph.current = nil } deinit {