Skip to content

Commit 2179a25

Browse files
authored
fix: prevent MeasureOverride from returning Infinity to Avalonia layout (#2136) (#2137)
1 parent 2a26295 commit 2179a25

3 files changed

Lines changed: 7 additions & 6 deletions

File tree

src/Views/CommitRefsPresenter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ protected override Size MeasureOverride(Size availableSize)
258258
}
259259

260260
var requiredWidth = allowWrap && requiredHeight > 16.0
261-
? availableSize.Width
261+
? (double.IsInfinity(availableSize.Width) ? x + 2 : availableSize.Width)
262262
: x + 2;
263263
InvalidateVisual();
264264
return new Size(requiredWidth, requiredHeight);

src/Views/ImageContainer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ protected override Size MeasureOverride(Size availableSize)
9090
return new Size(scale * imageSize.Width, scale * imageSize.Height);
9191
}
9292

93-
return availableSize;
93+
return new Size(0, 0);
9494
}
9595
}
9696

@@ -206,7 +206,7 @@ protected override Size MeasureOverride(Size availableSize)
206206
var right = NewImage;
207207

208208
if (left == null)
209-
return right == null ? availableSize : GetDesiredSize(right.Size, availableSize);
209+
return right == null ? new Size(0, 0) : GetDesiredSize(right.Size, availableSize);
210210

211211
if (right == null)
212212
return GetDesiredSize(left.Size, availableSize);
@@ -324,7 +324,7 @@ protected override Size MeasureOverride(Size availableSize)
324324
var right = NewImage;
325325

326326
if (left == null)
327-
return right == null ? availableSize : GetDesiredSize(right.Size, availableSize);
327+
return right == null ? new Size(0, 0) : GetDesiredSize(right.Size, availableSize);
328328

329329
if (right == null)
330330
return GetDesiredSize(left.Size, availableSize);
@@ -439,7 +439,7 @@ protected override Size MeasureOverride(Size availableSize)
439439
var right = NewImage;
440440

441441
if (left == null)
442-
return right == null ? availableSize : GetDesiredSize(right.Size, availableSize);
442+
return right == null ? new Size(0, 0) : GetDesiredSize(right.Size, availableSize);
443443

444444
if (right == null)
445445
return GetDesiredSize(left.Size, availableSize);

src/Views/StashSubjectPresenter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ protected override Size MeasureOverride(Size availableSize)
120120
var typeface = new Typeface(FontFamily);
121121
var test = new FormattedText("fgl|", CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, FontSize, Brushes.White);
122122
var h = Math.Max(18, test.Height);
123-
return new Size(availableSize.Width, h);
123+
var w = double.IsInfinity(availableSize.Width) ? 0 : availableSize.Width;
124+
return new Size(w, h);
124125
}
125126

126127
[GeneratedRegex(@"^On ([^\s]+)\: ")]

0 commit comments

Comments
 (0)