aboutsummaryrefslogtreecommitdiff
path: root/xkbcomp
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-12-08 09:32:47 +0100
committermarha <marha@users.sourceforge.net>2011-12-08 09:32:47 +0100
commitacd000667561cb9978ead7f14d4fbb97c1a8e727 (patch)
tree21668e5efeb08af34de6c679d4c46cc6fe5d7b64 /xkbcomp
parent893624a6c15d4ee6cf1d46e4ad29282c72bee962 (diff)
parent5b178ff5a5f0b6e481cf9fd9749eb7ef9581c987 (diff)
downloadvcxsrv-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.c6
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);
}