mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Fixed #1002: Inherited dependency properties with value false are not inherited down the visual tree.
This commit is contained in:
@@ -264,6 +264,14 @@ var inheritanceTestProperty = new dependensyObservable.Property(
|
||||
new proxy.PropertyMetadata(inheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
|
||||
);
|
||||
|
||||
var booleanInheritanceTestDefaultValue = true;
|
||||
|
||||
var booleanInheritanceTestProperty = new dependensyObservable.Property(
|
||||
"booleanInheritanceTest",
|
||||
"TestView",
|
||||
new proxy.PropertyMetadata(booleanInheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
|
||||
);
|
||||
|
||||
var dummyProperty = new dependensyObservable.Property(
|
||||
"dummy",
|
||||
"TestView",
|
||||
@@ -293,6 +301,13 @@ class TestView extends layoutModule.Layout {
|
||||
this._setValue(inheritanceTestProperty, value);
|
||||
}
|
||||
|
||||
get booleanInheritanceTest(): boolean {
|
||||
return this._getValue(booleanInheritanceTestProperty);
|
||||
}
|
||||
set booleanInheritanceTest(value: boolean) {
|
||||
this._setValue(booleanInheritanceTestProperty, value);
|
||||
}
|
||||
|
||||
get dummy(): number {
|
||||
return this._getValue(dummyProperty);
|
||||
}
|
||||
@@ -328,6 +343,25 @@ export var test_InheritableProperties_getValuesFromParent = function () {
|
||||
helper.do_PageTest(test, firstView, secondView, thirdView);
|
||||
}
|
||||
|
||||
export var test_BooleanInheritableProperties_getValuesFromParent = function () {
|
||||
var testValue = false;
|
||||
var test = function (views: Array<viewModule.View>) {
|
||||
var bottomView = <TestView>views[3]
|
||||
|
||||
TKUnit.assert(bottomView.booleanInheritanceTest === testValue, "Expected: " + testValue + " Actual: " + bottomView.booleanInheritanceTest);
|
||||
}
|
||||
|
||||
var firstView = new TestView("firstView");
|
||||
firstView.booleanInheritanceTest = testValue;
|
||||
var secondView = new TestView("secondView");
|
||||
var thirdView = new TestView("thirdView");
|
||||
|
||||
firstView.addChild(secondView);
|
||||
secondView.addChild(thirdView);
|
||||
|
||||
helper.do_PageTest(test, firstView, secondView, thirdView);
|
||||
}
|
||||
|
||||
export var test_InheritableProperties_resetValuesOnRemoveFromVisualTree = function () {
|
||||
var testValue = 35;
|
||||
var test = function (views: Array<viewModule.View>) {
|
||||
|
||||
@@ -977,9 +977,7 @@ export class View extends proxy.ProxyObject implements definition.View {
|
||||
}
|
||||
if (property.metadata && property.metadata.inheritable) {
|
||||
var baseValue = parentView._getValue(property);
|
||||
if (baseValue) {
|
||||
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
|
||||
}
|
||||
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user