This commit is contained in:
Kovid Goyal
2025-06-14 20:19:21 +05:30
parent 8aeb1ae6eb
commit 8e55cf7552
3 changed files with 8 additions and 1 deletions

View File

@@ -126,6 +126,8 @@ Detailed list of changes
- Wayland GNOME: Fix incorrect OS Window tracking because GNOME has started
activating windows on non-current workspaces (:iss:`8716`)
- Fix a regression in 0.40.0 that broke rendering of VS15 variation selectors in some circumstances (:iss:`8731`)
0.42.1 [2025-05-17]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -861,7 +861,7 @@ halve_multicell_width(Screen *self, index_type x_, index_type y_) {
unsigned new_width = cp[x_].width / 2;
while (cp[x_].x && x_ > 0) x_--;
index_type x_limit = MIN(self->columns, x_ + mcd_x_limit(&cp[x_]));
index_type half_x_limit = x_limit / 2;
index_type half_x_limit = MIN(self->columns, x_ + mcd_x_limit(&cp[x_]) / 2);
int y_max_limit = MIN(self->lines, y_ + cp[x_].scale);
for (int y = y_min_limit + 1; y < y_max_limit; y++) {
Line *line = range_line_(self, y); cp = line->cpu_cells; gp = line->gpu_cells;

View File

@@ -694,6 +694,11 @@ class TestScreen(BaseTest):
def test_variation_selectors(self):
s = self.create_screen()
def tt(text_to_draw):
s.reset()
s.draw(text_to_draw)
self.ae(str(s.line(0)), text_to_draw)
tt('abc\U0001f44d\ufe0ed')
def t(*a):
s.reset()
for i in range(0, len(a), 2):