diff -u libxklavier-4.0/debian/changelog libxklavier-4.0/debian/changelog --- libxklavier-4.0/debian/changelog +++ libxklavier-4.0/debian/changelog @@ -1,3 +1,11 @@ +libxklavier (4.0-0ubuntu5) karmic; urgency=low + + * debian/patches/92_handle_xi_errors.patch: + - Updated to trap all XI errors, and not just the first error code. + Really fix LP: #409621 + + -- Chris Coulson Sat, 17 Oct 2009 15:55:56 +0100 + libxklavier (4.0-0ubuntu4) karmic; urgency=low * debian/patches/92_handle_xi_errors.patch: diff -u libxklavier-4.0/debian/patches/92_handle_xi_errors.patch libxklavier-4.0/debian/patches/92_handle_xi_errors.patch --- libxklavier-4.0/debian/patches/92_handle_xi_errors.patch +++ libxklavier-4.0/debian/patches/92_handle_xi_errors.patch @@ -5,8 +5,8 @@ # errors and don't crash the users of libxklavier # diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_evt.c libxklavier-4.0.new/libxklavier/xklavier_evt.c ---- libxklavier-4.0/libxklavier/xklavier_evt.c 2009-10-15 01:40:10.896313164 +0100 -+++ libxklavier-4.0.new/libxklavier/xklavier_evt.c 2009-10-15 01:40:11.616307938 +0100 +--- libxklavier-4.0/libxklavier/xklavier_evt.c 2009-10-17 13:30:58.823386935 +0100 ++++ libxklavier-4.0.new/libxklavier/xklavier_evt.c 2009-10-17 13:30:59.523390339 +0100 @@ -492,6 +492,22 @@ break; } @@ -32,8 +32,8 @@ WINID_FORMAT ", %d [%s], " diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_evt_xkb.c libxklavier-4.0.new/libxklavier/xklavier_evt_xkb.c --- libxklavier-4.0/libxklavier/xklavier_evt_xkb.c 2008-11-17 00:14:44.000000000 +0000 -+++ libxklavier-4.0.new/libxklavier/xklavier_evt_xkb.c 2009-10-15 01:40:11.616307938 +0100 -@@ -162,6 +162,21 @@ ++++ libxklavier-4.0.new/libxklavier/xklavier_evt_xkb.c 2009-10-17 15:55:19.925893628 +0100 +@@ -162,6 +162,22 @@ #endif } @@ -45,7 +45,8 @@ +{ +#ifdef HAVE_XINPUT + /* Ignore XInput errors */ -+ if (xerev->error_code == xkl_engine_backend(engine, XklXkb, xi_error_code)) ++ if (xerev->error_code >= xkl_engine_backend(engine, XklXkb, xi_error_code) ++ && xerev->error_code <= (xkl_engine_backend(engine, XklXkb, xi_error_code) + XI_BadClass)) + return 1; +#endif + @@ -57,7 +58,7 @@ { diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_private.h libxklavier-4.0.new/libxklavier/xklavier_private.h --- libxklavier-4.0/libxklavier/xklavier_private.h 2009-06-23 23:40:38.000000000 +0100 -+++ libxklavier-4.0.new/libxklavier/xklavier_private.h 2009-10-15 01:40:11.616307938 +0100 ++++ libxklavier-4.0.new/libxklavier/xklavier_private.h 2009-10-17 13:30:59.523390339 +0100 @@ -157,6 +157,13 @@ gint(*process_x_event) (XklEngine * engine, XEvent * xev); @@ -74,7 +75,7 @@ * xmodmap: frees internal XklConfigRec diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_private_xkb.h libxklavier-4.0.new/libxklavier/xklavier_private_xkb.h --- libxklavier-4.0/libxklavier/xklavier_private_xkb.h 2009-06-23 14:59:52.000000000 +0100 -+++ libxklavier-4.0.new/libxklavier/xklavier_private_xkb.h 2009-10-15 01:40:11.616307938 +0100 ++++ libxklavier-4.0.new/libxklavier/xklavier_private_xkb.h 2009-10-17 13:30:59.523390339 +0100 @@ -48,6 +48,8 @@ #ifdef HAVE_XINPUT @@ -97,7 +98,7 @@ diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_xkb.c libxklavier-4.0.new/libxklavier/xklavier_xkb.c --- libxklavier-4.0/libxklavier/xklavier_xkb.c 2009-04-24 23:07:31.000000000 +0100 -+++ libxklavier-4.0.new/libxklavier/xklavier_xkb.c 2009-10-15 01:40:11.616307938 +0100 ++++ libxklavier-4.0.new/libxklavier/xklavier_xkb.c 2009-10-17 13:30:59.523390339 +0100 @@ -353,8 +353,8 @@ ¤t_state_out->indicators)) current_state_out->indicators &= @@ -167,7 +168,7 @@ xkl_debug(160, diff -Nur -x '*.orig' -x '*~' libxklavier-4.0/libxklavier/xklavier_xmm.c libxklavier-4.0.new/libxklavier/xklavier_xmm.c --- libxklavier-4.0/libxklavier/xklavier_xmm.c 2008-09-05 20:56:33.000000000 +0100 -+++ libxklavier-4.0.new/libxklavier/xklavier_xmm.c 2009-10-15 01:40:11.626310445 +0100 ++++ libxklavier-4.0.new/libxklavier/xklavier_xmm.c 2009-10-17 13:30:59.523390339 +0100 @@ -327,6 +327,7 @@ xkl_engine_priv(engine, lock_group) = xkl_xmm_lock_group;