Browse Source

Merge branch 'master' into feature/UnicodeUpdate

pull/4203/head
Benedikt Stebner 6 years ago
committed by GitHub
parent
commit
1e330b417a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 40
      src/Avalonia.Layout/LayoutManager.cs

40
src/Avalonia.Layout/LayoutManager.cs

@ -106,8 +106,6 @@ namespace Avalonia.Layout
if (!_running) if (!_running)
{ {
_running = true;
Stopwatch? stopwatch = null; Stopwatch? stopwatch = null;
const LogEventLevel timingLogLevel = LogEventLevel.Information; const LogEventLevel timingLogLevel = LogEventLevel.Information;
@ -128,15 +126,24 @@ namespace Avalonia.Layout
_toMeasure.BeginLoop(MaxPasses); _toMeasure.BeginLoop(MaxPasses);
_toArrange.BeginLoop(MaxPasses); _toArrange.BeginLoop(MaxPasses);
for (var pass = 0; pass < MaxPasses; ++pass) try
{ {
InnerLayoutPass(); _running = true;
if (!RaiseEffectiveViewportChanged()) for (var pass = 0; pass < MaxPasses; ++pass)
{ {
break; InnerLayoutPass();
if (!RaiseEffectiveViewportChanged())
{
break;
}
} }
} }
finally
{
_running = false;
}
_toMeasure.EndLoop(); _toMeasure.EndLoop();
_toArrange.EndLoop(); _toArrange.EndLoop();
@ -221,23 +228,16 @@ namespace Avalonia.Layout
private void InnerLayoutPass() private void InnerLayoutPass()
{ {
try for (var pass = 0; pass < MaxPasses; ++pass)
{ {
for (var pass = 0; pass < MaxPasses; ++pass) ExecuteMeasurePass();
{ ExecuteArrangePass();
ExecuteMeasurePass();
ExecuteArrangePass();
if (_toMeasure.Count == 0) if (_toMeasure.Count == 0)
{ {
break; break;
}
} }
} }
finally
{
_running = false;
}
} }
private void ExecuteMeasurePass() private void ExecuteMeasurePass()
@ -362,7 +362,7 @@ namespace Avalonia.Layout
} }
} }
return startCount != _toMeasure.Count + _toMeasure.Count; return startCount != _toMeasure.Count + _toArrange.Count;
} }
private Rect CalculateEffectiveViewport(IVisual control) private Rect CalculateEffectiveViewport(IVisual control)

Loading…
Cancel
Save