You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/05/09 21:33:10 UTC
[royale-asjs] branch develop updated: special case xmlwatcher child
of xml var. Partial fix for #819 along with royale-compiler change
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new 7f3d72a special case xmlwatcher child of xml var. Partial fix for #819 along with royale-compiler change
7f3d72a is described below
commit 7f3d72a9f90871f7c4f6c9586f4cfd37d6f987e9
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sat May 9 14:32:51 2020 -0700
special case xmlwatcher child of xml var. Partial fix for #819 along with royale-compiler change
---
.../src/main/royale/org/apache/royale/binding/DataBindingBase.as | 7 ++++++-
.../src/main/royale/org/apache/royale/binding/WatcherBase.as | 5 +++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/DataBindingBase.as b/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/DataBindingBase.as
index 83967d8..e7c3f5b 100644
--- a/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/DataBindingBase.as
+++ b/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/DataBindingBase.as
@@ -210,7 +210,7 @@ package org.apache.royale.binding
{
parentWatcher.addChild(pw);
}
- if (!hasWatcherChildren)
+ if (!hasWatcherChildren || watcherChildIsXML(watcher))
{
pw.addBinding(gb);
}
@@ -238,6 +238,11 @@ package org.apache.royale.binding
}
}
+ private function watcherChildIsXML(watcher:Object):Boolean
+ {
+ return (watcher.children.watchers.length == 1 && watcher.children.watchers[0].type == "xml");
+ }
+
protected function decodeWatcher(bindingData:Array):Object
{
var watcherMap:Object = {};
diff --git a/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/WatcherBase.as b/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/WatcherBase.as
index 9e83e83..8c7edba 100644
--- a/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/WatcherBase.as
+++ b/frameworks/projects/Binding/src/main/royale/org/apache/royale/binding/WatcherBase.as
@@ -156,7 +156,7 @@ package org.apache.royale.binding
else
listeners.push(binding);
- binding.valueChanged(value, false);
+ binding.valueChanged(value, typeof binding.source === "function");
}
/**
@@ -333,7 +333,8 @@ package org.apache.royale.binding
for (var i:int = 0; i < n; i++)
{
- listeners[i].valueChanged(value, false);
+ var gb:GenericBinding = listeners[i] as GenericBinding;
+ gb.valueChanged(value, typeof gb.source === "function");
}
}
}