AC_SUBST(Xcursor_cflags)
AC_SUBST(Xcursor_libs)
+ Xkb_libs=""
+ Xkb_cflags=""
+ use_Xkb="no"
+ PCFLAGS=$CFLAGS
+ CFLAGS="$x_cflags $x_includes"
+ AC_CHECK_HEADER(X11/XKBlib.h,
+ [
+ AC_CHECK_LIB(X11, XkbSetDetectableAutoRepeat,
+ [
+ AC_DEFINE(ECORE_XKB, 1, [Build support for Xkb])
+ Xkb_cflags=""
+ Xkb_libs=""
+ use_Xkb="yes"
+ ], [
+ Xkb_cflags=""
+ Xkb_libs=""
+ use_Xkb="no"
+ ], [
+ $x_libs
+ ]
+ )
+ ], [
+ Xkb_cflags=""
+ Xkb_libs=""
+ use_Xkb="no"
+ ], [
+ #include <X11/XKBlib.h>
+ ]
+ )
+ CFLAGS=$PCFLAGS
+
+ AC_SUBST(Xkb_cflags)
+ AC_SUBST(Xkb_libs)
+
ECORE_CHECK_X_EXTENSION([Xcomposite], [Xcomposite.h], [Xcomposite], [XCompositeQueryExtension])
ECORE_CHECK_X_EXTENSION([Xdamage], [Xdamage.h], [Xdamage], [XDamageSubtract])
ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xdpms], [DPMSQueryExtension])
else
echo " Ecore_X (Xlib backend).......: $have_ecore_x"
echo " Xcursor....................: $use_Xcursor"
+ echo " Xkb........................: $use_Xkb"
echo " Xprint.....................: $use_xprint"
echo " Xinerama...................: $use_xinerama"
echo " Xrandr.....................: $use_xrandr"
if (_ecore_x_event_damage_id)
_ecore_x_event_handlers[_ecore_x_event_damage_id] = _ecore_x_event_handle_damage_notify;
#endif
-
+#ifdef ECORE_XKB
+ // set x autorepeat detection to on. that means instead of
+ // press-release-press-release-press-release
+ // you get
+ // press-press-press-press-press-release
+ do
+ {
+ Bool works = 0;
+ XkbSetDetectableAutoRepeat(_ecore_x_disp, 1, &works);
+ }
+ while (0);
+#endif
+
if (!ECORE_X_EVENT_KEY_DOWN)
{
ECORE_X_EVENT_KEY_DOWN = ecore_event_type_new();