Bug#684605: x11-xkb-utils: xkbcomp breaks mouse events with non-English keyboard layout
Package: x11-xkb-utils
Version: 7.7~1
Followup-For: Bug #684605
affects 684605 awesome
fixed 684605 7.6+4
forwarded 684605 https://bugs.freedesktop.org/show_bug.cgi?id=50611
thanks
I hereby confirm that downgrading to x11-xkb-utils 7.6+4 fixes this
problem. You don't even need to recompile xkb-data or libxcb as I
previously thought, just restarting the X server is sufficient.
This is actually a regression introduced in an upstream commit in 2011:
1447071942dbbbfc37b08417c74c8a1d302c1626
I have signaled this in the upstream bug report.
I will attach the patch for this commit specifically. I added it to the
quilt series as this:
compat.diff -p0
Thank you for considering the application of this patch.
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_CA.UTF-8, LC_CTYPE=fr_CA.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to fr_CA.UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages x11-xkb-utils depends on:
ii libc6 2.13-35
ii libx11-6 2:1.5.0-1
ii libxaw7 2:1.0.10-2
ii libxkbfile1 1:1.0.8-1
ii libxt6 1:1.1.3-1
x11-xkb-utils recommends no packages.
x11-xkb-utils suggests no packages.
-- no debconf information
commit b8e4ab751857ff628e79b432b7b2f7d0e26de0ec
Author: Antoine Beaupré <anarcat@koumbit.org>
Date: Sat Nov 24 13:38:13 2012 -0500
Revert "include resets group compatibility modifiers #43091"
This reverts commit 1447071942dbbbfc37b08417c74c8a1d302c1626.
diff --git a/compat.c b/compat.c
index 2b00142..759535a 100644
--- xkbcomp.orig/compat.c
+++ xkbcomp/compat.c
@@ -50,7 +50,6 @@ typedef struct _GroupCompatInfo
{
unsigned char fileID;
unsigned char merge;
- Bool defined;
unsigned char real_mods;
unsigned short vmods;
} GroupCompatInfo;
@@ -281,8 +280,8 @@ AddGroupCompat(CompatInfo * info, unsigned group, GroupCompatInfo * newGC)
ACTION1("Using %s definition\n",
(merge == MergeAugment ? "old" : "new"));
}
- if(newGC->defined && (merge != MergeAugment || !gc->defined))
- *gc = *newGC;
+ if (merge != MergeAugment)
+ *gc = *newGC;
return True;
}
@@ -716,7 +715,6 @@ HandleGroupCompatDef(GroupCompatDef * def,
}
tmp.real_mods = val.uval & 0xff;
tmp.vmods = (val.uval >> 8) & 0xffff;
- tmp.defined = True;
return AddGroupCompat(info, def->group - 1, &tmp);
}
Reply to: