summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorJoakim Verona <joakim@verona.se>2016-01-19 20:27:12 +0100
committerJoakim Verona <joakim@verona.se>2016-01-19 20:58:22 +0100
commit7c1f66a94bf236a427606ef537b4629a48a1665b (patch)
tree8661f512f7bcf35bfb1e7d915e5b6ef8df6229d8 /configure.ac
parent663d379bbc2fde5e9bded157365e9d48ea01c027 (diff)
downloademacs-7c1f66a94bf236a427606ef537b4629a48a1665b.tar.gz
Support for the new Xwidget feature.
* configure.ac: (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES): * xterm.c (x_draw_glyph_string, x_draw_bar_cursor): * xdisp.c: (handle_display_spec, handle_single_display_spec, push_it) (pop_it, set_iterator_to_next, dump_glyph) (calc_pixel_width_or_height, fill_xwidget_glyph_string) (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS) (produce_xwidget_glyph, x_produce_glyphs) (get_window_cursor_type): * window.c (Fdelete_window_internal): * termhooks.h (e): * print.c (print_object): * lisp.h (ptrdiff_t): * keyboard.c (kbd_buffer_get_event, make_lispy_event) (syms_of_keyboard): * emacs.c (main): * dispnew.c (update_window, scrolling_window): * dispextern.h (g, i): * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS) (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES): * keyboard.c (kbd_buffer_get_event): * emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate) (emacs_fixed_class_init): Add case for an xwidget view. * xwidget.c, xwidget.h, xwidget.el: New files for xwidgets Co-authored-by: Grégoire Jadi <daimrod@gmail.com> Various improvements to the Xwidget feature. * xwidgets.c: * emacsgtkfixed.c: * xwidget.el:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac45
1 files changed, 45 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 3aeba22ec47..95f79ab8d4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -373,6 +373,9 @@ otherwise for the first of 'inotify' or 'gfile' that is usable.])
],
[with_file_notification=$with_features])
+OPTION_DEFAULT_OFF([xwidgets],
+ [enable use of some gtk widgets in Emacs buffers])
+
## For the times when you want to build Emacs but don't have
## a suitable makeinfo, and can live without the manuals.
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
@@ -2562,6 +2565,42 @@ if test "${HAVE_GTK}" = "yes"; then
term_header=gtkutil.h
fi
+
+HAVE_XWIDGETS=no
+HAVE_WEBKIT=no
+HAVE_GIR=no
+XWIDGETS_OBJ=
+if test "$with_xwidgets" != "no" && test "$USE_GTK_TOOLKIT" = "GTK3" &&
+ test "$window_system" != "none"
+then
+ HAVE_XWIDGETS=yes
+ AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.])
+
+ dnl xwidgets
+ dnl - enable only if GTK3 is enabled, and we have a window system
+ dnl - check for webkit and gobject introspection
+ dnl webkit version for gtk3.
+ WEBKIT_REQUIRED=1.4.0
+ WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED"
+
+ if test "${with_gtk3}" = "yes"; then
+ PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no)
+ if test $HAVE_WEBKIT = yes; then
+ AC_DEFINE([HAVE_WEBKIT_OSR], 1,
+ [Define to 1 if you have webkit_osr support.])
+ fi
+ fi
+
+ GIR_REQUIRED=1.32.1
+ GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED"
+ PKG_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no)
+ if test $HAVE_GIR = yes; then
+ AC_DEFINE([HAVE_GIR], 1, [Define to 1 if you have GIR support.])
+ fi
+ XWIDGETS_OBJ=xwidget.o
+fi
+AC_SUBST(XWIDGETS_OBJ)
+
CFLAGS=$OLD_CFLAGS
LIBS=$OLD_LIBS
@@ -4925,6 +4964,9 @@ case "$USE_X_TOOLKIT" in
LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
esac
+if test "$HAVE_XWIDGETS" = "yes"; then
+ TOOLKIT_LIBW="$TOOLKIT_LIBW -lXcomposite"
+fi
AC_SUBST(TOOLKIT_LIBW)
if test "${opsys}" != "mingw32"; then
@@ -5264,6 +5306,9 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D
Does Emacs directly use zlib? ${HAVE_ZLIB}
Does Emacs have dynamic modules support? ${HAVE_MODULES}
Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}
+ Does Emacs support Xwidgets? ${HAVE_XWIDGETS}
+ Does xwidgets support webkit(requires gtk3)? ${HAVE_WEBKIT}
+ Does xwidgets support gobject introspection? ${HAVE_GIR}
"])
if test -n "${EMACSDATA}"; then