From b27c05e52c5b36b6333eee9dcc0b859e973c4065 Mon Sep 17 00:00:00 2001 From: hshristov Date: Thu, 2 Apr 2015 15:43:04 +0300 Subject: [PATCH] Fix label ellipsis issue on zoomed iPhone 6 Plus. Fix Image.imageSource propertyMetadata to affects layout. --- apps/tests/ui/image/image-tests.ts | 5 +++++ apps/tests/ui/label/label-tests.ts | 18 ++++++++++++++++++ ui/core/view-common.ts | 4 ++-- ui/image/image-common.ts | 2 +- ui/image/image.d.ts | 8 ++++---- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/apps/tests/ui/image/image-tests.ts b/apps/tests/ui/image/image-tests.ts index 53851f756..0585136d0 100644 --- a/apps/tests/ui/image/image-tests.ts +++ b/apps/tests/ui/image/image-tests.ts @@ -249,3 +249,8 @@ export var test_SettingStretch_none = function () { helper.buildUIAndRunTest(image, testFunc); } + +export var test_src_property_affects_layout = function () { + var sourceProperty = ImageModule.Image.imageSourceProperty; + TKUnit.assertEqual(sourceProperty.metadata.affectsLayout, true, "sourceProperty should invalidate layout"); +} \ No newline at end of file diff --git a/apps/tests/ui/label/label-tests.ts b/apps/tests/ui/label/label-tests.ts index 729ab7669..a13824d81 100644 --- a/apps/tests/ui/label/label-tests.ts +++ b/apps/tests/ui/label/label-tests.ts @@ -87,6 +87,24 @@ export var test_Set_Text_Native = function () { helper.buildUIAndRunTest(label, test); } +export var test_measuredWidth_is_not_clipped = function () { + var label = new LabelModule.Label(); + label.horizontalAlignment = "left"; + label.text = "i"; + label.fontSize = 9; + + var test = function (views: Array) { + + TKUnit.waitUntilReady(() => { return label.isLayoutValid; }); + + var expectedValue = 3; + var measuredWidth = label.getMeasuredWidth(); + TKUnit.assertEqual(measuredWidth, expectedValue, "measuredWidth should not be rounded down."); + } + + helper.buildUIAndRunTest(label, test); +} + export var test_Set_TextWrap_TNS = function () { // // ### How to turn on text wrapping for a label diff --git a/ui/core/view-common.ts b/ui/core/view-common.ts index 7ed335ac6..4d0d03acd 100644 --- a/ui/core/view-common.ts +++ b/ui/core/view-common.ts @@ -476,7 +476,7 @@ export class View extends proxy.ProxyObject implements definition.View { case utils.layout.AT_MOST: if (specSize < size) { - result = Math.round(specSize) | utils.layout.MEASURED_STATE_TOO_SMALL; + result = Math.round(specSize + 0.499) | utils.layout.MEASURED_STATE_TOO_SMALL; } break; @@ -485,7 +485,7 @@ export class View extends proxy.ProxyObject implements definition.View { break; } - return Math.round(result) | (childMeasuredState & utils.layout.MEASURED_STATE_MASK); + return Math.round(result + 0.499) | (childMeasuredState & utils.layout.MEASURED_STATE_MASK); } public static layoutChild(parent: View, child: View, left: number, top: number, right: number, bottom: number): void { diff --git a/ui/image/image-common.ts b/ui/image/image-common.ts index b719f7a09..998d27f2d 100644 --- a/ui/image/image-common.ts +++ b/ui/image/image-common.ts @@ -65,7 +65,7 @@ export class Image extends view.View implements definition.Image { IMAGE, new proxy.PropertyMetadata( undefined, - dependencyObservable.PropertyMetadataSettings.None + dependencyObservable.PropertyMetadataSettings.AffectsLayout ) ); diff --git a/ui/image/image.d.ts b/ui/image/image.d.ts index 1f394ab45..3a506e352 100644 --- a/ui/image/image.d.ts +++ b/ui/image/image.d.ts @@ -10,8 +10,8 @@ declare module "ui/image" { * Represents a class that provides functionality for loading and streching image(s). */ export class Image extends view.View { - public static urlProperty: dependencyObservable.Property; - public static sourceProperty: dependencyObservable.Property; + public static srcProperty: dependencyObservable.Property; + public static imageSourceProperty: dependencyObservable.Property; public static isLoadingProperty: dependencyObservable.Property; public static stretchProperty: dependencyObservable.Property; @@ -53,12 +53,12 @@ declare module "ui/image" { /** * Gets or sets the image source of the image. */ - source: imageSource.ImageSource; + imageSource: imageSource.ImageSource; /** * Gets or sets the URL of the image. */ - url: string; + src: string; /** * Gets or sets the image stretch mode. Possible values are contained in the [Stretch enumeration](../enums/Stretch/README.md).