Skip to content

Commit afab52e

Browse files
committed
Copy DecorationPositioningMode value when creating new text options from another one
1 parent 2ae8c86 commit afab52e

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/SixLabors.Fonts/TextOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public TextOptions(TextOptions options)
4848
this.ColorFontSupport = options.ColorFontSupport;
4949
this.FeatureTags = new List<Tag>(options.FeatureTags);
5050
this.TextRuns = new List<TextRun>(options.TextRuns);
51+
this.DecorationPositioningMode = options.DecorationPositioningMode;
5152
}
5253

5354
/// <summary>

tests/SixLabors.Fonts.Tests/TextOptionsTests.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,9 +310,10 @@ public void NonDefaultClone()
310310
TabWidth = 3F,
311311
LineSpacing = -1F,
312312
VerticalAlignment = VerticalAlignment.Bottom,
313+
DecorationPositioningMode = DecorationPositioningMode.GlyphFont,
313314
WrappingLength = 42F,
314315
Tracking = 66F,
315-
FeatureTags = new List<Tag> { FeatureTags.OldstyleFigures }
316+
FeatureTags = new List<Tag> { FeatureTags.OldstyleFigures },
316317
};
317318

318319
TextOptions actual = new(expected);
@@ -324,6 +325,7 @@ public void NonDefaultClone()
324325
Assert.Equal(expected.TabWidth, actual.TabWidth);
325326
Assert.Equal(expected.VerticalAlignment, actual.VerticalAlignment);
326327
Assert.Equal(expected.WrappingLength, actual.WrappingLength);
328+
Assert.Equal(expected.DecorationPositioningMode, actual.DecorationPositioningMode);
327329
Assert.Equal(expected.FeatureTags, actual.FeatureTags);
328330
Assert.Equal(expected.Tracking, actual.Tracking);
329331
}
@@ -341,6 +343,7 @@ public void CloneIsDeep()
341343
LineSpacing = 2F,
342344
VerticalAlignment = VerticalAlignment.Bottom,
343345
TextJustification = TextJustification.InterCharacter,
346+
DecorationPositioningMode = DecorationPositioningMode.GlyphFont,
344347
WrappingLength = 42F,
345348
Tracking = 66F,
346349
};
@@ -352,6 +355,7 @@ public void CloneIsDeep()
352355
Assert.NotEqual(expected.TabWidth, actual.TabWidth);
353356
Assert.NotEqual(expected.VerticalAlignment, actual.VerticalAlignment);
354357
Assert.NotEqual(expected.WrappingLength, actual.WrappingLength);
358+
Assert.NotEqual(expected.DecorationPositioningMode, actual.DecorationPositioningMode);
355359
Assert.NotEqual(expected.TextJustification, actual.TextJustification);
356360
Assert.NotEqual(expected.Tracking, actual.Tracking);
357361
}
@@ -367,6 +371,7 @@ private static void VerifyPropertyDefault(TextOptions options)
367371
Assert.Equal(TextJustification.None, options.TextJustification);
368372
Assert.Equal(TextDirection.Auto, options.TextDirection);
369373
Assert.Equal(LayoutMode.HorizontalTopBottom, options.LayoutMode);
374+
Assert.Equal(DecorationPositioningMode.PrimaryFont, options.DecorationPositioningMode);
370375
Assert.Equal(1, options.LineSpacing);
371376
Assert.Equal(0, options.Tracking);
372377
}

0 commit comments

Comments
 (0)