From acf696e01ae32c18f19d05b7b3e6bbb98db036f6 Mon Sep 17 00:00:00 2001 From: "Vladimir E. Koltunov" Date: Tue, 22 Dec 2020 00:13:53 +0300 Subject: [PATCH 1/3] _handleViewMetricsChanged null pointer exception fixed in iOS. BUG (at least iOS) 1. UIWidgetsPanel is disabled and enabled Unity GUI Text Field. 2. User touches Text Field, Keyboard event comes, ViewportMatricsChanges emited, nullpointer occured in _handleViewMetricsChanged. FIX: remove handler in onDisable. --- Runtime/engine/UIWidgetsPanel.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Runtime/engine/UIWidgetsPanel.cs b/Runtime/engine/UIWidgetsPanel.cs index c886fea3..5a841950 100644 --- a/Runtime/engine/UIWidgetsPanel.cs +++ b/Runtime/engine/UIWidgetsPanel.cs @@ -192,6 +192,13 @@ public WindowPadding viewInsets { } protected override void OnDisable() { + + if (this._viewMetricsCallbackRegistered) { + this._viewMetricsCallbackRegistered = false; + UIWidgetsMessageManager.instance.RemoveChannelMessageDelegate("ViewportMatricsChanged", + this._handleViewMetricsChanged); + } + D.assert(this._windowAdapter != null); this._windowAdapter.OnDisable(); this._windowAdapter = null; @@ -417,4 +424,4 @@ public Window window { get { return this._windowAdapter; } } } -} \ No newline at end of file +} From 5423aaea21330c76d657d1b567b7e40c3895583b Mon Sep 17 00:00:00 2001 From: "Vladimir E. Koltunov" Date: Tue, 22 Dec 2020 01:16:00 +0300 Subject: [PATCH 2/3] _handleViewMetricsChanged null pointer exception fixed in iOS. BUG (at least iOS) UIWidgetsPanel is disabled and enabled Unity GUI Text Field. User touches Text Field, Keyboard event comes, ViewportMatricsChanges emited, nullpointer occured in _handleViewMetricsChanged. FIX: remove handler in onDisable. --- Runtime/engine/UIWidgetsPanel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Runtime/engine/UIWidgetsPanel.cs b/Runtime/engine/UIWidgetsPanel.cs index 5a841950..440c460f 100644 --- a/Runtime/engine/UIWidgetsPanel.cs +++ b/Runtime/engine/UIWidgetsPanel.cs @@ -195,7 +195,7 @@ protected override void OnDisable() { if (this._viewMetricsCallbackRegistered) { this._viewMetricsCallbackRegistered = false; - UIWidgetsMessageManager.instance.RemoveChannelMessageDelegate("ViewportMatricsChanged", + UIWidgetsMessageManager.instance?.RemoveChannelMessageDelegate("ViewportMatricsChanged", this._handleViewMetricsChanged); } From 9937ab3bdd6db93061ebed8b96ec98e8560fd724 Mon Sep 17 00:00:00 2001 From: "Vladimir E. Koltunov" Date: Tue, 22 Dec 2020 15:11:00 +0300 Subject: [PATCH 3/3] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5fd9bb09..1d741393 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.uiwidgets", "displayName":"UIWidgets", - "version": "1.5.4-preview.1", + "version": "1.5.4-preview.2", "unity": "2018.4", "description": "UIWidgets allows you to build beautiful cross-platform apps through Unity", "dependencies": {