diff --git a/haxe/ui/_module/locale/fr/form-strings.properties b/haxe/ui/_module/locale/fr/form-strings.properties
new file mode 100644
index 000000000..012485095
--- /dev/null
+++ b/haxe/ui/_module/locale/fr/form-strings.properties
@@ -0,0 +1 @@
+form.field.required=Le champs est requis
\ No newline at end of file
diff --git a/haxe/ui/_module/locale/fr/messagebox-strings.properties b/haxe/ui/_module/locale/fr/messagebox-strings.properties
new file mode 100644
index 000000000..30755507c
--- /dev/null
+++ b/haxe/ui/_module/locale/fr/messagebox-strings.properties
@@ -0,0 +1,4 @@
+messagebox.title.info=Info
+messagebox.title.question=Question
+messagebox.title.warning=Avertissement
+messagebox.title.error=Erreur
\ No newline at end of file
diff --git a/haxe/ui/components/NumberStepper.hx b/haxe/ui/components/NumberStepper.hx
index 6b86886be..44d7120ee 100644
--- a/haxe/ui/components/NumberStepper.hx
+++ b/haxe/ui/components/NumberStepper.hx
@@ -256,7 +256,7 @@ private class Events extends haxe.ui.events.Events {
_stepper.unregisterEvent(FocusEvent.FOCUS_IN, onFocusIn);
_stepper.unregisterEvent(FocusEvent.FOCUS_OUT, onFocusOut);
_stepper.unregisterEvent(MouseEvent.MOUSE_WHEEL, onMouseWheel);
- LocaleManager.instance.unregisterEvent(LocaleEvent.LOCALE_CHANGED, onLocaleChanged);
+ removeLocaleChanged();
var value:TextField = _stepper.findComponent("value", TextField);
value.unregisterEvent(UIEvent.CHANGE, onValueFieldChange);
@@ -268,7 +268,17 @@ private class Events extends haxe.ui.events.Events {
inc.unregisterEvent(MouseEvent.CLICK, onInc);
unregisterEvent(ActionEvent.ACTION_START, onActionStart);
}
-
+
+ public override function onDispose() {
+ // `unregister()` isn't called when the component is disposed,
+ // so this listener would be left lingering
+ removeLocaleChanged();
+ }
+
+ private function removeLocaleChanged() {
+ LocaleManager.instance.unregisterEvent(LocaleEvent.LOCALE_CHANGED, onLocaleChanged);
+ }
+
private var _autoCorrectTimer:Timer = null;
private function onValueFieldChange(event:UIEvent) {
if (_stepper.autoCorrect == true) {
diff --git a/haxe/ui/module.xml b/haxe/ui/module.xml
index 29959d0f3..b95ea31ca 100644
--- a/haxe/ui/module.xml
+++ b/haxe/ui/module.xml
@@ -19,6 +19,8 @@
+
+
@@ -37,12 +39,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/haxe/ui/util/RTTI.hx b/haxe/ui/util/RTTI.hx
index 458b9e059..ad6c1d711 100644
--- a/haxe/ui/util/RTTI.hx
+++ b/haxe/ui/util/RTTI.hx
@@ -137,6 +137,10 @@ class RTTI {
return _allPropertiesCache.get(cacheKey);
}
+ if (classInfo == null) {
+ return null;
+ }
+
var entry = classInfo.get(className);
var properties = null;
if (entry != null) {