summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2009-09-29 23:17:57 +0000
committerSergey Udaltsov <svu@gnome.org>2009-09-29 23:17:57 +0000
commit560ef64c517dd9bb9711599e104a2f5d9f59a412 (patch)
treefef49a6040c633b0ab7db227fa0565b351b3d4b8
parent741591ee510c61fe1269075a3c3c97d4ea4b17ae (diff)
downloadlibxklavier-560ef64c517dd9bb9711599e104a2f5d9f59a412.tar.gz
save xinput error code
-rw-r--r--ChangeLog2
-rw-r--r--libxklavier/xklavier_private_xkb.h2
-rw-r--r--libxklavier/xklavier_xkb.c26
3 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 60b5146..865c3c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
* libxklavier/xklavier_evt.c: ignore BadDrawable error,
https://bugs.edge.launchpad.net/ubuntu/+source/libxklavier/+bug/404924
+ * libxklavier/xklavier_private_xkb.h, libxklavier/xklavier_xkb.c: save
+ xinput error code and event type
2009-08-29 svu
diff --git a/libxklavier/xklavier_private_xkb.h b/libxklavier/xklavier_private_xkb.h
index 3332012..894b1fb 100644
--- a/libxklavier/xklavier_private_xkb.h
+++ b/libxklavier/xklavier_private_xkb.h
@@ -48,6 +48,8 @@ typedef struct _XklXkb {
#ifdef HAVE_XINPUT
gint xi_event_type;
+
+ gint xi_error_code;
#endif
} XklXkb;
diff --git a/libxklavier/xklavier_xkb.c b/libxklavier/xklavier_xkb.c
index 33da2fa..dd59dd2 100644
--- a/libxklavier/xklavier_xkb.c
+++ b/libxklavier/xklavier_xkb.c
@@ -353,8 +353,8 @@ xkl_xkb_get_server_state(XklEngine * engine, XklState * current_state_out)
&current_state_out->indicators))
current_state_out->indicators &=
xkl_engine_backend(engine, XklXkb,
- cached_desc)->
- indicators->phys_indicators;
+ cached_desc)->indicators->
+ phys_indicators;
else
current_state_out->indicators = 0;
}
@@ -402,8 +402,8 @@ xkl_xkb_set_indicator(XklEngine * engine, gint indicator_num, gboolean set)
xkl_engine_backend
(engine, XklXkb,
device_id),
- cached->
- names->indicators
+ cached->names->
+ indicators
[indicator_num], set,
False, NULL);
else {
@@ -541,7 +541,7 @@ xkl_xkb_init(XklEngine * engine)
#ifdef LIBXKBFILE_PRESENT
gint opcode;
gboolean xkl_xkb_ext_present;
- int xi_opc, xi_event_type, xi_error_code;
+ int xi_opc;
xkl_engine_priv(engine, backend_id) = "XKB";
xkl_engine_priv(engine, features) = XKLF_CAN_TOGGLE_INDICATORS |
@@ -615,15 +615,25 @@ xkl_xkb_init(XklEngine * engine)
xkl_engine_priv(engine, features) |=
XKLF_MULTIPLE_LAYOUTS_SUPPORTED;
+#if HAVE_XINPUT
if (XQueryExtension
(display, "XInputExtension", &xi_opc,
- &xi_event_type, &xi_error_code)) {
+ &xkl_engine_backend(engine, XklXkb, xi_event_type),
+ &xkl_engine_backend(engine, XklXkb, xi_error_code))) {
xkl_debug(150, "XInputExtension found (%d, %d, %d)\n",
- xi_opc, xi_event_type, xi_error_code);
+ xi_opc,
+ xkl_engine_backend(engine, XklXkb,
+ xi_event_type),
+ xkl_engine_backend(engine, XklXkb,
+ xi_error_code));
xkl_engine_priv(engine, features) |= XKLF_DEVICE_DISCOVERY;
- } else
+ } else {
xkl_debug(0, "XInputExtension not found\n");
+ xkl_engine_backend(engine, XklXkb, xi_event_type) = -1;
+ xkl_engine_backend(engine, XklXkb, xi_error_code) = -1;
+ }
return 0;
+#endif
#else
xkl_debug(160,
"NO XKB LIBS, display: %p, root: " WINID_FORMAT