diff options
author | marha <marha@users.sourceforge.net> | 2009-09-15 10:39:59 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-09-15 10:39:59 +0000 |
commit | a233ed27754bb0d373d63569d9a28aeb8fee5b82 (patch) | |
tree | 2732a9434bbc102653dc22df9887d94e19570836 /xorg-server/xkb/xkbActions.c | |
parent | a915739887477b28d924ecc8417ee107d125bd6c (diff) | |
download | vcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.tar.gz vcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.tar.bz2 vcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.zip |
Checked in xorg-server-1.6.99.901
Diffstat (limited to 'xorg-server/xkb/xkbActions.c')
-rw-r--r-- | xorg-server/xkb/xkbActions.c | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/xorg-server/xkb/xkbActions.c b/xorg-server/xkb/xkbActions.c index 9c3184a83..b0ab427b6 100644 --- a/xorg-server/xkb/xkbActions.c +++ b/xorg-server/xkb/xkbActions.c @@ -124,30 +124,11 @@ static XkbAction fake; } pActs= XkbKeyActionsPtr(xkb,key); col= 0; - effectiveGroup= xkbState->group; - if (effectiveGroup!=XkbGroup1Index) { - if (XkbKeyNumGroups(xkb,key)>(unsigned)1) { - if (effectiveGroup>=XkbKeyNumGroups(xkb,key)) { - unsigned gi= XkbKeyGroupInfo(xkb,key); - switch (XkbOutOfRangeGroupAction(gi)) { - default: - case XkbWrapIntoRange: - effectiveGroup %= XkbKeyNumGroups(xkb,key); - break; - case XkbClampIntoRange: - effectiveGroup = XkbKeyNumGroups(xkb,key)-1; - break; - case XkbRedirectIntoRange: - effectiveGroup= XkbOutOfRangeGroupInfo(gi); - if (effectiveGroup>=XkbKeyNumGroups(xkb,key)) - effectiveGroup= 0; - break; - } - } - } - else effectiveGroup= XkbGroup1Index; - col+= (effectiveGroup*XkbKeyGroupsWidth(xkb,key)); - } + + effectiveGroup = XkbGetEffectiveGroup(xkbi, xkbState, key); + if (effectiveGroup != XkbGroup1Index) + col += (effectiveGroup * XkbKeyGroupsWidth(xkb, key)); + type= XkbKeyKeyType(xkb,key,effectiveGroup); if (type->map!=NULL) { register unsigned i,mods; |