emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/igc 806c6b2339d: Fix glyph pools instead of matrices on ttys


From: Gerd Moellmann
Subject: scratch/igc 806c6b2339d: Fix glyph pools instead of matrices on ttys
Date: Mon, 28 Oct 2024 03:31:15 -0400 (EDT)

branch: scratch/igc
commit 806c6b2339d919905b94d7a719ca4f904904c72b
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>

    Fix glyph pools instead of matrices on ttys
    
    * src/igc.c (fix_glyph_pool): New function.
    (fix_frame): Call fix_glyph_pool.
---
 src/igc.c | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/igc.c b/src/igc.c
index 3e94c94f686..58d22a234a3 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -2019,6 +2019,21 @@ fix_buffer (mps_ss_t ss, struct buffer *b)
   return MPS_RES_OK;
 }
 
+static mps_res_t
+fix_glyph_pool (mps_ss_t ss, struct glyph_pool *pool)
+{
+  MPS_SCAN_BEGIN (ss)
+  {
+    for (ptrdiff_t i = 0; i < pool->nglyphs; ++i)
+      {
+       IGC_FIX12_OBJ (ss, &pool->glyphs[i].object);
+       IGC_FIX12_RAW (ss, &pool->glyphs[i].frame);
+      }
+  }
+  MPS_SCAN_END (ss);
+  return MPS_RES_OK;
+}
+
 static mps_res_t
 fix_glyph_matrix (mps_ss_t ss, struct glyph_matrix *matrix)
 {
@@ -2094,13 +2109,10 @@ fix_frame (mps_ss_t ss, struct frame *f)
     IGC_FIX12_OBJ (ss, &f->conversion.field);
 #endif
 
-    if (!FRAME_WINDOW_P (f))
-      {
-       if (f->current_matrix)
-         IGC_FIX_CALL (ss, fix_glyph_matrix (ss, f->current_matrix));
-       if (f->desired_matrix)
-         IGC_FIX_CALL (ss, fix_glyph_matrix (ss, f->desired_matrix));
-      }
+    if (f->current_pool)
+      IGC_FIX_CALL (ss, fix_glyph_pool (ss, f->current_pool));
+    if (f->desired_pool)
+      IGC_FIX_CALL (ss, fix_glyph_pool (ss, f->desired_pool));
   }
   MPS_SCAN_END (ss);
   return MPS_RES_OK;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]