From da56b5471e0626732fdde0cfa7efb6b683ff7bd4 Mon Sep 17 00:00:00 2001 From: Andreas Wettstein Date: Sun, 7 Aug 2011 10:06:30 +0200 Subject: [PATCH] xkb: Support noLock and noUnlock flags for LockMods Print the "affect" flag when it is set to a nondefault value. When the flags are unset, nothing is printed, to avoid possible problems with older software that cannot parse the affect flag when it appears in LockMods. Signed-off-by: Andreas Wettstein --- src/xkbtext.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/src/xkbtext.c b/src/xkbtext.c index 712ba96..da8a91d 100644 --- a/src/xkbtext.c +++ b/src/xkbtext.c @@ -800,6 +800,7 @@ CopyModActionArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, { XkbModAction * act; unsigned tmp; +char tbuf[32]; act= &action->mods; tmp= XkbModActionVMods(act); @@ -812,8 +813,20 @@ unsigned tmp; sz); } else TryCopyStr(buf,"none",sz); - if (act->type==XkbSA_LockMods) + if (act->type==XkbSA_LockMods){ + switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) { + case XkbSA_LockNoLock: + sprintf(tbuf,",affect=unlock"); break; + case XkbSA_LockNoUnlock: + sprintf(tbuf,",affect=lock"); break; + case XkbSA_LockNoUnlock|XkbSA_LockNoLock: + sprintf(tbuf,",affect=neither"); break; + default: + sprintf(tbuf,""); break; + } + TryCopyStr(buf,tbuf,sz); return True; + } if (act->flags&XkbSA_ClearLocks) TryCopyStr(buf,",clearLocks",sz); if (act->flags&XkbSA_LatchToLock) -- 1.7.6