summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs
diff options
context:
space:
mode:
authorKangho Hur <kangho.hur@samsung.com>2017-04-25 10:36:32 +0000
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>2017-04-25 10:36:32 +0000
commit945d90388fc499ec34d6d2066e7981fa78ec4c4c (patch)
tree7a011e59f161cbf5e16ceb829f86c94081f42659 /Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs
parent6e8e89f0547f885a041d94c81c3caaeab7c24331 (diff)
parent48b36ce652543441c94880594a8add92095c9b2a (diff)
downloadxamarin-forms-945d90388fc499ec34d6d2066e7981fa78ec4c4c.tar.gz
xamarin-forms-945d90388fc499ec34d6d2066e7981fa78ec4c4c.tar.bz2
xamarin-forms-945d90388fc499ec34d6d2066e7981fa78ec4c4c.zip
Merge "New way of layout" into tizen
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs53
1 files changed, 8 insertions, 45 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs
index 978a5b5a..a3282a3f 100644
--- a/Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs
@@ -45,9 +45,7 @@ namespace Xamarin.Forms.Platform.Tizen
HashSet<string> _batchedProperties = new HashSet<string>();
- int _layoutCallback = 0;
bool _movedCallbackEnabled = false;
-
/// <summary>
/// Default constructor.
/// </summary>
@@ -257,21 +255,10 @@ namespace Xamarin.Forms.Platform.Tizen
protected virtual void UpdateLayout()
{
- // we're updating the coordinates of native control only if they were modified
- // via Xamarin (IsNativeLayouting() returns false);
- // otherwise native control is already in the right place
- if (!IsNativeLayouting() && null != NativeView)
+ if (null != NativeView)
{
UpdateNativeGeometry();
}
-
- // we're updating just immediate children
- // To update the relative postion of children
- var logicalChildren = (Element as IElementController).LogicalChildren;
- foreach (var child in logicalChildren)
- {
- Platform.GetRenderer(child)?.UpdateNativeGeometry();
- }
}
/// <summary>
@@ -471,12 +458,10 @@ namespace Xamarin.Forms.Platform.Tizen
{
if (_flags.HasFlag(VisualElementRendererFlags.NeedsLayout))
{
- if (!IsNativeLayouting())
- {
- UpdateNativeGeometry();
- // UpdateLayout already updates transformation, clear NeedsTranformation flag then
- _flags &= ~VisualElementRendererFlags.NeedsTransformation;
- }
+ UpdateLayout();
+ // UpdateLayout already updates transformation, clear NeedsTranformation flag then
+ _flags &= ~VisualElementRendererFlags.NeedsTransformation;
+
_flags ^= VisualElementRendererFlags.NeedsLayout;
}
if (_flags.HasFlag(VisualElementRendererFlags.NeedsTransformation))
@@ -559,16 +544,7 @@ namespace Xamarin.Forms.Platform.Tizen
protected void DoLayout(Native.LayoutEventArgs e)
{
- EnterNativeLayoutCallback();
- if (e.HasChanged)
- {
- var bound = e.Geometry.ToDP();
- bound.X = Element.X;
- bound.Y = Element.Y;
- Element.Layout(bound);
- UpdateLayout();
- }
- LeaveNativeLayoutCallback();
+ Element.Layout(e.Geometry.ToDP());
}
protected virtual Size MinimumSize()
@@ -611,12 +587,12 @@ namespace Xamarin.Forms.Platform.Tizen
static double ComputeAbsoluteX(VisualElement e)
{
- return e.X + (e.RealParent is VisualElement ? Forms.ConvertToScaledDP(Platform.GetRenderer(e.RealParent).NativeView.Geometry.X) : 0.0);
+ return e.X + ((e.RealParent is VisualElement) && !(e.RealParent is ListView) ? Forms.ConvertToScaledDP(Platform.GetRenderer(e.RealParent).NativeView.Geometry.X) : 0.0);
}
static double ComputeAbsoluteY(VisualElement e)
{
- return e.Y + (e.RealParent is VisualElement ? Forms.ConvertToScaledDP(Platform.GetRenderer(e.RealParent).NativeView.Geometry.Y) : 0.0);
+ return e.Y + ((e.RealParent is VisualElement) && !(e.RealParent is ListView) ? Forms.ConvertToScaledDP(Platform.GetRenderer(e.RealParent).NativeView.Geometry.Y) : 0.0);
}
static Point ComputeAbsolutePoint(VisualElement e)
@@ -1049,18 +1025,5 @@ namespace Xamarin.Forms.Platform.Tizen
return EFocusDirection.Next;
}
-
- void EnterNativeLayoutCallback()
- {
- _layoutCallback++;
- }
- void LeaveNativeLayoutCallback()
- {
- _layoutCallback--;
- }
- bool IsNativeLayouting()
- {
- return _layoutCallback > 0;
- }
}
}