From 6ba007b75e39c068ddd3f79e1221780423ecd26b Mon Sep 17 00:00:00 2001 From: Anton Poltoratskyi Date: Mon, 13 Jul 2020 12:33:38 +0300 Subject: [PATCH] Fixed Node's `onTap` method. Previous implementation haven't considered copy on write behavior, so it was not possible to register second tap hander. --- Source/model/scene/Node.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/model/scene/Node.swift b/Source/model/scene/Node.swift index 0f321552..d580d7e9 100644 --- a/Source/model/scene/Node.swift +++ b/Source/model/scene/Node.swift @@ -111,11 +111,11 @@ open class Node: Drawable { @discardableResult public func onTap(tapCount: Int = 1, f: @escaping (TapEvent) -> Void) -> Disposable { let handler = ChangeHandler(f) - if var handlers = tapHandlers[tapCount] { - handlers.append(handler) - } else { - tapHandlers[tapCount] = [handler] - } + + var handlers = tapHandlers[tapCount] ?? [] + handlers.append(handler) + + tapHandlers[tapCount] = handlers return Disposable { [weak self, unowned handler] in guard let index = self?.tapHandlers[tapCount]?.firstIndex(of: handler) else {