diff options
author | marha <marha@users.sourceforge.net> | 2011-12-08 09:32:47 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-12-08 09:32:47 +0100 |
commit | acd000667561cb9978ead7f14d4fbb97c1a8e727 (patch) | |
tree | 21668e5efeb08af34de6c679d4c46cc6fe5d7b64 /xkbcomp | |
parent | 893624a6c15d4ee6cf1d46e4ad29282c72bee962 (diff) | |
parent | 5b178ff5a5f0b6e481cf9fd9749eb7ef9581c987 (diff) | |
download | vcxsrv-acd000667561cb9978ead7f14d4fbb97c1a8e727.tar.gz vcxsrv-acd000667561cb9978ead7f14d4fbb97c1a8e727.tar.bz2 vcxsrv-acd000667561cb9978ead7f14d4fbb97c1a8e727.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'xkbcomp')
-rw-r--r-- | xkbcomp/compat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xkbcomp/compat.c b/xkbcomp/compat.c index 759535a38..2b0014244 100644 --- a/xkbcomp/compat.c +++ b/xkbcomp/compat.c @@ -50,6 +50,7 @@ typedef struct _GroupCompatInfo { unsigned char fileID; unsigned char merge; + Bool defined; unsigned char real_mods; unsigned short vmods; } GroupCompatInfo; @@ -280,8 +281,8 @@ AddGroupCompat(CompatInfo * info, unsigned group, GroupCompatInfo * newGC) ACTION1("Using %s definition\n", (merge == MergeAugment ? "old" : "new")); } - if (merge != MergeAugment) - *gc = *newGC; + if(newGC->defined && (merge != MergeAugment || !gc->defined)) + *gc = *newGC; return True; } @@ -715,6 +716,7 @@ 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); } |