aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2024-10-26 11:18:41 +0300
committerEli Zaretskii2024-10-26 11:18:41 +0300
commit33586db3d34bcbe6441d98542df2b3370a1e2622 (patch)
treefb35aa9d2784fd1be9308ba1fbe3e8ad9c8ae5f2
parent9b8d1e0addeca9b508324537e7743d0af508a630 (diff)
downloademacs-33586db3d34bcbe6441d98542df2b3370a1e2622.tar.gz
emacs-33586db3d34bcbe6441d98542df2b3370a1e2622.zip
Adapt w32 console to tty-child-frame changes
* src/w32console.c (w32con_write_glyphs): Use the glyph's frame, not the root frame, to resolve faces from face IDs.
-rw-r--r--src/w32console.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/w32console.c b/src/w32console.c
index 7dcbc795cac..b9a84bbf86a 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -327,14 +327,19 @@ w32con_write_glyphs (struct frame *f, register struct glyph *string,
327 { 327 {
328 /* Identify a run of glyphs with the same face. */ 328 /* Identify a run of glyphs with the same face. */
329 int face_id = string->face_id; 329 int face_id = string->face_id;
330 /* Since this is called to deliver the frame glyph matrix to the
331 glass, some of the glyphs might be from a child frame, which
332 affects the interpretation of face ID. */
333 struct frame *face_id_frame = string->frame ? string->frame : f;
330 int n; 334 int n;
331 335
332 for (n = 1; n < len; ++n) 336 for (n = 1; n < len; ++n)
333 if (string[n].face_id != face_id) 337 if (!(string[n].face_id == face_id
338 && string[n].frame == face_id_frame))
334 break; 339 break;
335 340
336 /* Turn appearance modes of the face of the run on. */ 341 /* Turn appearance modes of the face of the run on. */
337 char_attr = w32_face_attributes (f, face_id); 342 char_attr = w32_face_attributes (face_id_frame, face_id);
338 343
339 if (n == len) 344 if (n == len)
340 /* This is the last run. */ 345 /* This is the last run. */