summaryrefslogtreecommitdiff
path: root/src/xterm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xterm.h')
-rw-r--r--src/xterm.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/xterm.h b/src/xterm.h
index de6ea50385d..d9ace002d58 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -88,6 +88,10 @@ typedef GtkWidget *xt_or_gtk_widget;
#include <X11/Xlib-xcb.h>
#endif
+#ifdef HAVE_XKB
+#include <X11/XKBlib.h>
+#endif
+
#include "dispextern.h"
#include "termhooks.h"
@@ -163,6 +167,39 @@ struct color_name_cache_entry
char *name;
};
+#ifdef HAVE_XINPUT2
+struct xi_scroll_valuator_t
+{
+ bool invalid_p;
+ double current_value;
+ double emacs_value;
+ double increment;
+
+ int number;
+ int horizontal;
+};
+
+struct xi_touch_point_t
+{
+ struct xi_touch_point_t *next;
+
+ int number;
+ double x, y;
+};
+
+struct xi_device_t
+{
+ int device_id;
+ int scroll_valuator_count;
+ int grab;
+ bool master_p;
+ bool direct_p;
+
+ struct xi_scroll_valuator_t *valuators;
+ struct xi_touch_point_t *touchpoints;
+};
+#endif
+
Status x_parse_color (struct frame *f, const char *color_name,
XColor *color);
@@ -474,6 +511,19 @@ struct x_display_info
#ifdef HAVE_XDBE
bool supports_xdbe;
#endif
+
+#ifdef HAVE_XINPUT2
+ bool supports_xi2;
+ int xi2_version;
+ int xi2_opcode;
+
+ int num_devices;
+ struct xi_device_t *devices;
+#endif
+
+#ifdef HAVE_XKB
+ XkbDescPtr xkb_desc;
+#endif
};
#ifdef HAVE_X_I18N
@@ -481,6 +531,11 @@ struct x_display_info
extern bool use_xim;
#endif
+#ifdef HAVE_XINPUT2
+/* Defined in xmenu.c. */
+extern int popup_activated_flag;
+#endif
+
/* This is a chain of structures for all the X displays currently in use. */
extern struct x_display_info *x_display_list;
@@ -1108,6 +1163,7 @@ extern void x_mouse_leave (struct x_display_info *);
extern int x_dispatch_event (XEvent *, Display *);
#endif
extern int x_x_to_emacs_modifiers (struct x_display_info *, int);
+extern int x_emacs_to_x_modifiers (struct x_display_info *, intmax_t);
#ifdef USE_CAIRO
extern void x_cr_destroy_frame_context (struct frame *);
extern void x_cr_update_surface_desired_size (struct frame *, int, int);