summaryrefslogtreecommitdiff
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2018-11-29 15:26:44 +0100
committerRobert Pluim <rpluim@gmail.com>2018-11-30 08:55:02 +0100
commit5f67353da7af3ebb8fdf7bc4953e112fe1a33689 (patch)
tree2467748be3324b6c89f958cfbbe2d14f1b09b487 /src/dispextern.h
parent3b852da52fda327302956d263a3f916e3363cdd4 (diff)
downloademacs-5f67353da7af3ebb8fdf7bc4953e112fe1a33689.tar.gz
Convert NS face colors to RGBA when comparing with frame values
The NS port uses indexes into a color table to specify the colors of faces, whereas frames use RGBA pixel values. In extend_face_to_end_of_line the two needed to be compared to ensure that the backgrounds of certain faces are not extended to the edge of the window, which was failing because of this difference, thus causing a visual difference with other platforms. Convert from index to RGBA when doing such comparisons. * src/dispextern.h (FACE_COLOR_TO_PIXEL) [HAVE_NS]: New macro. Call ns_color_index_to_rgba under NS only. * src/nsgui.h: Add prototype for ns_color_index_to_rgba. * src/nsterm.m (ns_color_index_to_rgba): New function. Converts a color_table entry to corresponding RGBA pixel value. * src/xdisp.c (extend_face_to_end_of_line): Call FACE_COLOR_TO_PIXEL on face background color when comparing with frame color.
Diffstat (limited to 'src/dispextern.h')
-rw-r--r--src/dispextern.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index 579665c2ff8..776d14080e5 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -74,10 +74,13 @@ typedef HDC XImagePtr_or_DC;
#ifdef HAVE_NS
#include "nsgui.h"
+#define FACE_COLOR_TO_PIXEL(face_color, frame) ns_color_index_to_rgba(face_color, frame)
/* Following typedef needed to accommodate the MSDOS port, believe it or not. */
typedef struct ns_display_info Display_Info;
typedef Pixmap XImagePtr;
typedef XImagePtr XImagePtr_or_DC;
+#else
+#define FACE_COLOR_TO_PIXEL(face_color, frame) face_color
#endif
#ifdef HAVE_WINDOW_SYSTEM