changeset 5987:040bdc2fec7c

(dumpglyphs): Try various alternatives for foreground color of a glyph with the cursor on it.
author Richard M. Stallman <rms@gnu.org>
date Fri, 18 Feb 1994 01:01:51 +0000
parents fdb3959bbaf7
children aaf6fe5d0a54
files src/xterm.c
diffstat 1 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Thu Feb 17 23:33:02 1994 +0000
+++ b/src/xterm.c	Fri Feb 18 01:01:51 1994 +0000
@@ -569,7 +569,25 @@
 		unsigned long mask;
 
 		xgcv.background = f->display.x->cursor_pixel;
-		xgcv.foreground = f->display.x->cursor_foreground_pixel;
+		if (face == FRAME_DEFAULT_FACE (f))
+		  xgcv.foreground = f->display.x->cursor_foreground_pixel;
+		else
+		  xgcv.foreground = face->foreground;
+		/* If the glyph would be invisible,
+		   try a different foreground.  */
+		if (xgcv.foreground == xgcv.background)
+		  xgcv.foreground = face->background;
+		if (xgcv.foreground == xgcv.background)
+		  xgcv.foreground = f->display.x->cursor_foreground_pixel;
+		if (xgcv.foreground == xgcv.background)
+		  xgcv.foreground = face->foreground;
+		/* Make sure the cursor is distinct from text in this face.  */
+		if (xgcv.background == face->background
+		    && xgcv.foreground == face->foreground)
+		  {
+		    xgcv.background = face->foreground;
+		    xgcv.foreground = face->background;
+		  }
 		xgcv.font = face->font->fid;
 		xgcv.graphics_exposures = 0;
 		mask = GCForeground | GCBackground | GCFont | GCGraphicsExposures;