260516.2 · a346044f2a9697788ff976917f18d9b174781e33
vt: prune tab stops after resize (#1105)
reading declarations
@@ -2403,6 +2403,7 @@ func (em *emulator) ResizeEvent(size Coord) { func (em *emulator) applyResize(size Coord) { // resize clobbers our content, until it is redrawn em.size = size+ em.tabStops = slices.DeleteFunc(em.tabStops, func(x Col) bool { return x >= em.size.X }) // resizing resets the margins em.topMargin = 0 em.botMargin = em.size.Y - 1
@@ -132,6 +132,25 @@ func TestMockBackendHelpers(t *testing.T) { MockOptNoBlit{}.SetMockOpt(mb) } +func TestApplyResizePrunesTabStops(t *testing.T) {+ em := NewEmulator(NewMockBackend(MockOptSize{X: 80, Y: 24})).(*emulator)+ em.tabStops = []Col{8, 16, 24, 32, 40, 48}++ em.applyResize(Coord{X: 32, Y: 24})++ if got, want := em.tabStops, []Col{8, 16, 24}; !slices.Equal(got, want) {+ t.Fatalf("unexpected tab stops after resize: got %v, want %v", got, want)+ }++ em.setPosition(Coord{X: 0, Y: 0})+ for _, want := range []Col{8, 16, 24, 31} {+ em.nextTab()+ if got := em.getPosition().X; got != want {+ t.Fatalf("unexpected tab position after resize: got %d, want %d", got, want)+ }+ }+}+ func TestPutRuneGraphemeExtensions(t *testing.T) { t.Parallel()