From 416ee1436e86811d1df1f098cbf038ea6eee3bae Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Thu, 24 Oct 2024 14:35:43 -0700 Subject: [PATCH] PageNavigator, TabNavigator: Haxe 4.0 back compat --- src/feathers/controls/navigators/PageNavigator.hx | 9 ++++++--- src/feathers/controls/navigators/TabNavigator.hx | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/feathers/controls/navigators/PageNavigator.hx b/src/feathers/controls/navigators/PageNavigator.hx index 4c17f1fd..a9f0252f 100644 --- a/src/feathers/controls/navigators/PageNavigator.hx +++ b/src/feathers/controls/navigators/PageNavigator.hx @@ -70,7 +70,7 @@ class PageNavigator extends BaseNavigator implements IIndexSelector implements I private static final defaultPageIndicatorFactory = DisplayObjectFactory.withClass(PageIndicator); private static final NO_PENDING_SELECTED_INDEX:Int = -2; - private static final NO_PENDING_SELECTED_ITEM:{} = {}; + private static final NO_PENDING_SELECTED_ITEM:Any = {}; /** Creates a new `PageNavigator` object. @@ -219,9 +219,12 @@ class PageNavigator extends BaseNavigator implements IIndexSelector implements I } private function set_selectedItem(value:#if flash Dynamic #else PageItem #end):#if flash Dynamic #else PageItem #end { - var currentSelectedItem = this._pendingSelectedItem != NO_PENDING_SELECTED_ITEM ? this._pendingSelectedItem : this._selectedItem; + var currentSelectedItem:Any = this._pendingSelectedItem; + if (currentSelectedItem == NO_PENDING_SELECTED_ITEM) { + currentSelectedItem = this._selectedItem; + } if (currentSelectedItem == value) { - return currentSelectedItem; + return cast(currentSelectedItem, PageItem); } this._pendingSelectedItem = value; this._pendingSelectedIndex = NO_PENDING_SELECTED_INDEX; diff --git a/src/feathers/controls/navigators/TabNavigator.hx b/src/feathers/controls/navigators/TabNavigator.hx index f9267a58..a20346b3 100644 --- a/src/feathers/controls/navigators/TabNavigator.hx +++ b/src/feathers/controls/navigators/TabNavigator.hx @@ -71,7 +71,7 @@ class TabNavigator extends BaseNavigator implements IIndexSelector implements ID private static final defaultTabBarFactory = DisplayObjectFactory.withClass(TabBar); private static final NO_PENDING_SELECTED_INDEX:Int = -2; - private static final NO_PENDING_SELECTED_ITEM:{} = {}; + private static final NO_PENDING_SELECTED_ITEM:Any = {}; /** Creates a new `TabNavigator` object. @@ -220,9 +220,12 @@ class TabNavigator extends BaseNavigator implements IIndexSelector implements ID } private function set_selectedItem(value:#if flash Dynamic #else TabItem #end):#if flash Dynamic #else TabItem #end { - var currentSelectedItem = this._pendingSelectedItem != NO_PENDING_SELECTED_ITEM ? this._pendingSelectedItem : this._selectedItem; + var currentSelectedItem:Any = this._pendingSelectedItem; + if (currentSelectedItem == NO_PENDING_SELECTED_ITEM) { + currentSelectedItem = this._selectedItem; + } if (currentSelectedItem == value) { - return currentSelectedItem; + return cast(currentSelectedItem, TabItem); } this._pendingSelectedItem = value; this._pendingSelectedIndex = NO_PENDING_SELECTED_INDEX;