XKB: Remove lock actions disabling
For some reason, XKB allows clients to set a global (!) flag that simply turns lock keys into state no-ops. Ignore this flag. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
2f7cb73067
commit
5c281446d2
|
@ -291,12 +291,9 @@ extern _X_EXPORT void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
|
||||||
|
|
||||||
extern _X_EXPORT int XkbReqCode;
|
extern _X_EXPORT int XkbReqCode;
|
||||||
extern _X_EXPORT int XkbEventBase;
|
extern _X_EXPORT int XkbEventBase;
|
||||||
extern _X_EXPORT int XkbDisableLockActions;
|
|
||||||
extern _X_EXPORT int XkbKeyboardErrorCode;
|
extern _X_EXPORT int XkbKeyboardErrorCode;
|
||||||
extern _X_EXPORT char * XkbBaseDirectory;
|
extern _X_EXPORT char * XkbBaseDirectory;
|
||||||
extern _X_EXPORT char * XkbBinDirectory;
|
extern _X_EXPORT char * XkbBinDirectory;
|
||||||
extern _X_EXPORT int XkbDfltRepeatDelay;
|
|
||||||
extern _X_EXPORT int XkbDfltRepeatInterval;
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool noXkbExtension;
|
extern _X_EXPORT Bool noXkbExtension;
|
||||||
|
|
||||||
|
|
|
@ -6611,8 +6611,6 @@ int rc;
|
||||||
xkbDebugFlags = newFlags;
|
xkbDebugFlags = newFlags;
|
||||||
xkbDebugCtrls = newCtrls;
|
xkbDebugCtrls = newCtrls;
|
||||||
|
|
||||||
XkbDisableLockActions= (xkbDebugCtrls&XkbDF_DisableLocks);
|
|
||||||
|
|
||||||
rep.type= X_Reply;
|
rep.type= X_Reply;
|
||||||
rep.length = 0;
|
rep.length = 0;
|
||||||
rep.sequenceNumber = client->sequence;
|
rep.sequenceNumber = client->sequence;
|
||||||
|
|
|
@ -85,41 +85,6 @@ static XkbAction fake;
|
||||||
fake.type = XkbSA_NoAction;
|
fake.type = XkbSA_NoAction;
|
||||||
return fake;
|
return fake;
|
||||||
}
|
}
|
||||||
if (XkbDisableLockActions) {
|
|
||||||
switch (act->type) {
|
|
||||||
case XkbSA_LockMods:
|
|
||||||
fake.mods.type = XkbSA_SetMods;
|
|
||||||
fake.mods.flags = 0;
|
|
||||||
fake.mods.mask = act->mods.mask;
|
|
||||||
return fake;
|
|
||||||
case XkbSA_LatchMods:
|
|
||||||
fake.mods.type = XkbSA_SetMods;
|
|
||||||
fake.mods.flags = 0;
|
|
||||||
fake.mods.mask = act->mods.mask;
|
|
||||||
return fake;
|
|
||||||
case XkbSA_ISOLock:
|
|
||||||
if (act->iso.flags&XkbSA_ISODfltIsGroup) {
|
|
||||||
fake.group.type = XkbSA_SetGroup;
|
|
||||||
fake.group.flags = act->iso.flags&XkbSA_GroupAbsolute;
|
|
||||||
XkbSASetGroup(&fake.group,XkbSAGroup(&act->iso));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fake.mods.type = XkbSA_SetMods;
|
|
||||||
fake.mods.flags = 0;
|
|
||||||
fake.mods.mask = act->iso.mask;
|
|
||||||
}
|
|
||||||
return fake;
|
|
||||||
case XkbSA_LockGroup:
|
|
||||||
case XkbSA_LatchGroup:
|
|
||||||
/* We want everything from the latch/lock action except the
|
|
||||||
* type should be changed to set.
|
|
||||||
*/
|
|
||||||
fake = *act;
|
|
||||||
fake.group.type = XkbSA_SetGroup;
|
|
||||||
return fake;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (xkb->ctrls->enabled_ctrls&XkbStickyKeysMask) {
|
if (xkb->ctrls->enabled_ctrls&XkbStickyKeysMask) {
|
||||||
if (act->any.type==XkbSA_SetMods) {
|
if (act->any.type==XkbSA_SetMods) {
|
||||||
fake.mods.type = XkbSA_LatchMods;
|
fake.mods.type = XkbSA_LatchMods;
|
||||||
|
|
|
@ -68,8 +68,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
#include "xkbgeom.h"
|
#include "xkbgeom.h"
|
||||||
#include "xkb.h"
|
#include "xkb.h"
|
||||||
|
|
||||||
int XkbDisableLockActions = 0;
|
|
||||||
|
|
||||||
/***====================================================================***/
|
/***====================================================================***/
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
Loading…
Reference in New Issue
Block a user