summaryrefslogtreecommitdiff
path: root/lwlib/xlwmenuP.h
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2019-04-24 12:31:37 +0900
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2019-04-24 12:31:37 +0900
commit5f4e8e2e088de9fb76cb631077c6eddd3219f594 (patch)
treeabb80bc8ec36c28d4eef08b92db90a142f641be6 /lwlib/xlwmenuP.h
parent1828e9a9b7481572448284a8e5925bf97f2145f7 (diff)
downloademacs-5f4e8e2e088de9fb76cb631077c6eddd3219f594.tar.gz
Don't link libXft when using cairo
* configure.ac: Check cairo early. Don't try Xft if cairo is used. * lwlib/lwlib-utils.h [USE_CAIRO]: Include cairo.h and fontconfig.h. (XftFont, XftDraw, XftColor, XGlyphInfo) [USE_CAIRO]: New typedefs. (XftFontOpenName, XftFontClose, XftDrawCreate, XftDrawDestroy) (XftDrawRect, XftDrawStringUtf8, XftTextExtentsUtf8) [USE_CAIRO]: New macros. (crxft_font_open_name, crxft_font_close, crxft_draw_create) (crxft_draw_rect, crxft_draw_string, crxft_text_extents) [USE_CAIRO]: New externs. * lwlib/lwlib-utils.c [USE_CAIRO]: Include math.h, cairo-ft.h, and cairo-xlib.h. (crxft_font_open_name, crxft_font_close, crxft_draw_create) (crxft_set_source_color, crxft_draw_rect, crxft_draw_string) (crxft_text_extents) [USE_CAIRO]: New Xft compatibility functions. * lwlib/xlwmenuP.h [USE_CAIRO]: Include lwlib-utils.h. * lwlib/xlwmenu.c (display_menu_item) [USE_CAIRO]: Call cairo_surface_mark_dirty and cairo_surface_flush. * lwlib/lwlib-Xaw.c [USE_CAIRO]: Include stdlib.h and lwlib-utils.h. (draw_text) [USE_CAIRO]: Call cairo_surface_flush. * src/xsettings.c [USE_CAIRO]: Include fontconfig.h (apply_xft_settings) [!HAVE_XFT]: Don't call XftDefaultSubstitute or XftDefaultSet. * lwlib/lwlib-Xaw.c: * lwlib/lwlib-int.h: * lwlib/xlwmenu.c: * lwlib/xlwmenuP.h: * src/xrdb.c: * src/xsettings.c: * src/xterm.c: Replace all #ifdef HAVE_XFT with #if defined USE_CAIRO || defined HAVE_XFT. * src/xfns.c (x_default_font_parameter): Replace #ifdef HAVE_XFT with #if defined USE_CAIRO || defined HAVE_XFT.
Diffstat (limited to 'lwlib/xlwmenuP.h')
-rw-r--r--lwlib/xlwmenuP.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h
index 610f83afe45..2a05d993541 100644
--- a/lwlib/xlwmenuP.h
+++ b/lwlib/xlwmenuP.h
@@ -23,9 +23,13 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
#include "xlwmenu.h"
#include <X11/CoreP.h>
-#ifdef HAVE_XFT
+#if defined USE_CAIRO || defined HAVE_XFT
+#ifdef USE_CAIRO
+#include "lwlib-utils.h"
+#else /* HAVE_XFT */
#include <X11/Xft/Xft.h>
#endif
+#endif
/* Elements in the stack arrays. */
typedef struct _window_state
@@ -42,7 +46,7 @@ typedef struct _window_state
/* Width of toggle buttons or radio buttons. */
Dimension button_width;
-#ifdef HAVE_XFT
+#if defined USE_CAIRO || defined HAVE_XFT
XftDraw* xft_draw;
#endif
} window_state;
@@ -56,7 +60,7 @@ typedef struct _XlwMenu_part
XFontSet fontSet;
XFontSetExtents *font_extents;
#endif
-#ifdef HAVE_XFT
+#if defined USE_CAIRO || defined HAVE_XFT
int default_face;
XftFont* xft_font;
XftColor xft_fg, xft_bg, xft_disabled_fg;