emacs-diffs
[Top][All Lists]
Advanced

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

master cba88c275b 1/2: * src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synch


From: Po Lu
Subject: master cba88c275b 1/2: * src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synchronize logic with X.
Date: Thu, 3 Mar 2022 20:13:34 -0500 (EST)

branch: master
commit cba88c275bb2abbd65837fb27530655b0222b62b
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    * src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synchronize logic with X.
---
 src/pgtkterm.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index 7855b7053a..ce167fdac2 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -3573,10 +3573,23 @@ pgtk_draw_fringe_bitmap (struct window *w, struct 
glyph_row *row,
        }
     }
 
-  if (p->which && p->which < max_fringe_bmp)
+  if (p->which
+      && p->which < max_fringe_bmp
+      && p->which < max_used_fringe_bitmap)
     {
       Emacs_GC gcv;
 
+      if (!fringe_bmp[p->which])
+       {
+         /* This fringe bitmap is known to fringe.c, but lacks the
+            cairo_pattern_t pattern which shadows that bitmap.  This
+            is typical to define-fringe-bitmap being called when the
+            selected frame was not a GUI frame, for example, when
+            packages that define fringe bitmaps are loaded by a
+            daemon Emacs.  Create the missing pattern now.  */
+         gui_define_fringe_bitmap (f, p->which);
+       }
+
       gcv.foreground = (p->cursor_p
                        ? (p->overlay_p ? face->background
                           : FRAME_X_OUTPUT (f)->cursor_color)



reply via email to

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