Lines Matching defs:xkbi
114 XkbGetKeyAction(XkbSrvInfoPtr xkbi,XkbStatePtr xkbState,CARD8 key)
123 xkb= xkbi->desc;
131 effectiveGroup = XkbGetEffectiveGroup(xkbi, xkbState, key);
174 _XkbFilterSetState( XkbSrvInfoPtr xkbi,
187 xkbi->setMods= pAction->mods.mask;
190 xkbi->groupChange = XkbSAGroup(&pAction->group);
192 xkbi->groupChange-= xkbi->state.base_group;
194 XkbSASetGroup(&filter->upAction.group,xkbi->groupChange);
199 xkbi->clearMods = filter->upAction.mods.mask;
201 xkbi->state.locked_mods&= ~filter->upAction.mods.mask;
206 xkbi->state.locked_group = 0;
208 xkbi->groupChange = -XkbSAGroup(&filter->upAction.group);
224 _XkbFilterLatchState( XkbSrvInfoPtr xkbi,
238 xkbi->setMods = pAction->mods.mask;
241 xkbi->groupChange = XkbSAGroup(&pAction->group);
243 xkbi->groupChange-= xkbi->state.base_group;
245 XkbSASetGroup(&filter->upAction.group,xkbi->groupChange);
252 xkbi->state.latched_mods&= ~filter->upAction.mods.mask;
253 else xkbi->state.latched_group-=XkbSAGroup(&filter->upAction.group);
259 XkbControlsPtr ctrls= xkbi->desc->ctrls;
265 XkbDDXAccessXBeep(xkbi->device,_BEEP_STICKY_LOCK,
275 xkbi->state.latched_mods&= ~filter->upAction.mods.mask;
276 else xkbi->state.latched_group-=XkbSAGroup(&filter->upAction.group);
281 XkbControlsPtr ctrls= xkbi->desc->ctrls;
288 xkbi->clearMods = filter->upAction.mods.mask;
290 (xkbi->clearMods&xkbi->state.locked_mods)==xkbi->clearMods) {
291 xkbi->state.locked_mods&= ~xkbi->clearMods;
297 xkbi->groupChange = -XkbSAGroup(&filter->upAction.group);
299 (xkbi->state.locked_group)) {
300 xkbi->state.locked_group = 0;
311 xkbi->state.latched_mods |= filter->upAction.mods.mask;
312 needBeep = xkbi->state.latched_mods ? needBeep : 0;
313 xkbi->state.latched_mods |= filter->upAction.mods.mask;
316 xkbi->state.latched_group+= XkbSAGroup(&filter->upAction.group);
322 XkbDDXAccessXBeep(xkbi->device,beepType,XkbStickyKeysMask);
332 _XkbFilterLockState( XkbSrvInfoPtr xkbi,
339 xkbi->state.locked_group= XkbSAGroup(&pAction->group);
340 else xkbi->state.locked_group+= XkbSAGroup(&pAction->group);
350 xkbi->state.locked_mods^= pAction->mods.mask;
351 xkbi->setMods = pAction->mods.mask;
355 xkbi->clearMods = filter->upAction.mods.mask;
364 _XkbFilterISOLock( XkbSrvInfoPtr xkbi,
380 xkbi->groupChange = XkbSAGroup(&pAction->iso);
381 xkbi->setMods = 0;
384 xkbi->setMods = pAction->iso.mask;
385 xkbi->groupChange = 0;
387 if ((!(flags&XkbSA_ISONoAffectMods))&&(xkbi->state.base_mods)) {
389 xkbi->state.locked_mods^= xkbi->state.base_mods;
391 if ((!(flags&XkbSA_ISONoAffectGroup))&&(xkbi->state.base_group)) {
402 xkbi->groupChange = -XkbSAGroup(&filter->upAction.iso);
403 xkbi->clearMods = 0;
405 xkbi->state.locked_group+= XkbSAGroup(&filter->upAction.iso);
408 xkbi->clearMods= filter->upAction.iso.mask;
409 xkbi->groupChange= 0;
411 xkbi->state.locked_mods^= filter->upAction.iso.mask;
452 XkbSrvInfoPtr xkbi= (XkbSrvInfoPtr)arg;
453 XkbControlsPtr ctrls= xkbi->desc->ctrls;
456 if (xkbi->mouseKey==0)
459 if (xkbi->mouseKeysAccel) {
460 if ((xkbi->mouseKeysCounter)<ctrls->mk_time_to_max) {
462 xkbi->mouseKeysCounter++;
463 step= xkbi->mouseKeysCurveFactor*
464 pow((double)xkbi->mouseKeysCounter,xkbi->mouseKeysCurve);
465 if (xkbi->mouseKeysDX<0)
466 dx= floor( ((double)xkbi->mouseKeysDX)*step );
467 else dx= ceil( ((double)xkbi->mouseKeysDX)*step );
468 if (xkbi->mouseKeysDY<0)
469 dy= floor( ((double)xkbi->mouseKeysDY)*step );
470 else dy= ceil( ((double)xkbi->mouseKeysDY)*step );
473 dx= xkbi->mouseKeysDX*ctrls->mk_max_speed;
474 dy= xkbi->mouseKeysDY*ctrls->mk_max_speed;
476 if (xkbi->mouseKeysFlags&XkbSA_MoveAbsoluteX)
477 dx= xkbi->mouseKeysDX;
478 if (xkbi->mouseKeysFlags&XkbSA_MoveAbsoluteY)
479 dy= xkbi->mouseKeysDY;
482 dx= xkbi->mouseKeysDX;
483 dy= xkbi->mouseKeysDY;
485 XkbFakePointerMotion(xkbi->device, xkbi->mouseKeysFlags,dx,dy);
486 return xkbi->desc->ctrls->mk_interval;
490 _XkbFilterPointerMove( XkbSrvInfoPtr xkbi,
505 xkbi->mouseKeysCounter= 0;
506 xkbi->mouseKey= keycode;
510 XkbFakePointerMotion(xkbi->device, pAction->ptr.flags,x,y);
511 AccessXCancelRepeatKey(xkbi,keycode);
512 xkbi->mouseKeysAccel= accel&&
513 (xkbi->desc->ctrls->enabled_ctrls&XkbMouseKeysAccelMask);
514 xkbi->mouseKeysFlags= pAction->ptr.flags;
515 xkbi->mouseKeysDX= XkbPtrActionX(&pAction->ptr);
516 xkbi->mouseKeysDY= XkbPtrActionY(&pAction->ptr);
517 xkbi->mouseKeyTimer= TimerSet(xkbi->mouseKeyTimer, 0,
518 xkbi->desc->ctrls->mk_delay,
519 _XkbPtrAccelExpire,(pointer)xkbi);
523 if (xkbi->mouseKey==keycode) {
524 xkbi->mouseKey= 0;
525 xkbi->mouseKeyTimer= TimerSet(xkbi->mouseKeyTimer, 0, 0,
533 _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
542 button = xkbi->desc->ctrls->mk_dflt_btn;
553 if (((xkbi->lockedPtrButtons&(1<<button))==0)&&
555 xkbi->lockedPtrButtons|= (1<<button);
556 AccessXCancelRepeatKey(xkbi,keycode);
557 XkbFakeDeviceButton(xkbi->device, 1, button);
564 AccessXCancelRepeatKey(xkbi,keycode);
568 XkbFakeDeviceButton(xkbi->device, 1, button);
569 XkbFakeDeviceButton(xkbi->device, 0, button);
573 else XkbFakeDeviceButton(xkbi->device, 1, button);
578 XkbControlsPtr ctrls= xkbi->desc->ctrls;
583 AccessXCancelRepeatKey(xkbi,keycode);
604 if (XkbComputeControlsNotify(xkbi->device,
605 &old,xkbi->desc->ctrls,
612 XkbSendControlsNotify(xkbi->device,&cn);
624 ((xkbi->lockedPtrButtons&(1<<button))==0)) {
627 xkbi->lockedPtrButtons&= ~(1<<button);
629 if (IsMaster(xkbi->device))
631 XkbMergeLockedPtrBtns(xkbi->device);
633 if ((xkbi->lockedPtrButtons & (1 << button)) != 0)
639 XkbFakeDeviceButton(xkbi->device, 0, button);
648 _XkbFilterControls( XkbSrvInfoPtr xkbi,
659 kbd= xkbi->device;
660 ctrls= xkbi->desc->ctrls;
695 XkbClearAllLatchesAndLocks(kbd,xkbi,FALSE,&cause);
722 XkbClearAllLatchesAndLocks(kbd,xkbi,FALSE,&cause);
736 _XkbFilterActionMessage(XkbSrvInfoPtr xkbi,
744 kbd= xkbi->device;
788 _XkbFilterRedirectKey( XkbSrvInfoPtr xkbi,
797 xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device);
808 GetSpritePosition(xkbi->device, &x,&y);
816 if ((pAction->redirect.new_key<xkbi->desc->min_key_code)||
817 (pAction->redirect.new_key>xkbi->desc->max_key_code)) {
832 if (mask) XkbVirtualModsToReal(xkbi->desc,mask,&mask);
833 if (mods) XkbVirtualModsToReal(xkbi->desc,mods,&mods);
838 old= xkbi->state;
839 xkbi->state.base_mods&= ~mask;
840 xkbi->state.base_mods|= (mods&mask);
841 xkbi->state.latched_mods&= ~mask;
842 xkbi->state.latched_mods|= (mods&mask);
843 xkbi->state.locked_mods&= ~mask;
844 xkbi->state.locked_mods|= (mods&mask);
845 XkbComputeDerivedState(xkbi);
848 UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc);
849 xkbi->device->public.processInputProc((InternalEvent*)&ev, xkbi->device);
850 COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr,
854 xkbi->state= old;
863 if (mask) XkbVirtualModsToReal(xkbi->desc,mask,&mask);
864 if (mods) XkbVirtualModsToReal(xkbi->desc,mods,&mods);
869 old= xkbi->state;
870 xkbi->state.base_mods&= ~mask;
871 xkbi->state.base_mods|= (mods&mask);
872 xkbi->state.latched_mods&= ~mask;
873 xkbi->state.latched_mods|= (mods&mask);
874 xkbi->state.locked_mods&= ~mask;
875 xkbi->state.locked_mods|= (mods&mask);
876 XkbComputeDerivedState(xkbi);
879 UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc);
880 xkbi->device->public.processInputProc((InternalEvent*)&ev, xkbi->device);
881 COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr,
885 xkbi->state= old;
894 _XkbFilterSwitchScreen( XkbSrvInfoPtr xkbi,
899 DeviceIntPtr dev = xkbi->device;
908 AccessXCancelRepeatKey(xkbi, keycode);
920 _XkbFilterXF86Private( XkbSrvInfoPtr xkbi,
925 DeviceIntPtr dev = xkbi->device;
946 _XkbFilterDeviceBtn( XkbSrvInfoPtr xkbi,
954 if (xkbi->device == inputInfo.keyboard)
1023 XkbSrvInfoPtr xkbi
1028 if (xkbi->szFilters==0) {
1029 xkbi->szFilters = 4;
1030 xkbi->filters = calloc(xkbi->szFilters, sizeof(XkbFilterRec));
1033 for (i=0;i<xkbi->szFilters;i++) {
1034 if (!xkbi->filters[i].active) {
1035 xkbi->filters[i].keycode = 0;
1036 return &xkbi->filters[i];
1039 xkbi->szFilters*=2;
1040 xkbi->filters= realloc(xkbi->filters,
1041 xkbi->szFilters * sizeof(XkbFilterRec));
1043 memset(&xkbi->filters[xkbi->szFilters/2], 0,
1044 (xkbi->szFilters/2)*sizeof(XkbFilterRec));
1045 return &xkbi->filters[xkbi->szFilters/2];
1049 _XkbApplyFilters(XkbSrvInfoPtr xkbi,unsigned kc,XkbAction *pAction)
1054 for (i=0;i<xkbi->szFilters;i++) {
1055 if ((xkbi->filters[i].active)&&(xkbi->filters[i].filter))
1056 send= ((*xkbi->filters[i].filter)(xkbi,&xkbi->filters[i],kc,pAction)
1066 XkbSrvInfoPtr xkbi;
1079 xkbi= keyc->xkbInfo;
1083 if ((xkbi->flags&_XkbStateNotifyInProgress)==0) {
1084 xkbi->prev_state = xkbi->state;
1085 xkbi->flags|= _XkbStateNotifyInProgress;
1090 xkbi->clearMods = xkbi->setMods = 0;
1091 xkbi->groupChange = 0;
1099 act = XkbGetKeyAction(xkbi,&xkbi->state,key);
1104 sendEvent = _XkbApplyFilters(xkbi,key,&act);
1109 filter = _XkbNextFreeFilter(xkbi);
1110 sendEvent = _XkbFilterSetState(xkbi,filter,key,&act);
1114 filter = _XkbNextFreeFilter(xkbi);
1115 sendEvent=_XkbFilterLatchState(xkbi,filter,key,&act);
1119 filter = _XkbNextFreeFilter(xkbi);
1120 sendEvent=_XkbFilterLockState(xkbi,filter,key,&act);
1123 filter = _XkbNextFreeFilter(xkbi);
1124 sendEvent=_XkbFilterISOLock(xkbi,filter,key,&act);
1127 filter = _XkbNextFreeFilter(xkbi);
1128 sendEvent= _XkbFilterPointerMove(xkbi,filter,key,&act);
1133 filter = _XkbNextFreeFilter(xkbi);
1134 sendEvent= _XkbFilterPointerBtn(xkbi,filter,key,&act);
1140 filter = _XkbNextFreeFilter(xkbi);
1141 sendEvent=_XkbFilterSwitchScreen(xkbi,filter,key,&act);
1145 filter = _XkbNextFreeFilter(xkbi);
1146 sendEvent=_XkbFilterControls(xkbi,filter,key,&act);
1149 filter = _XkbNextFreeFilter(xkbi);
1150 sendEvent=_XkbFilterActionMessage(xkbi,filter,key,&act);
1153 filter = _XkbNextFreeFilter(xkbi);
1154 sendEvent= _XkbFilterRedirectKey(xkbi,filter,key,&act);
1158 filter = _XkbNextFreeFilter(xkbi);
1159 sendEvent= _XkbFilterDeviceBtn(xkbi,filter,key,&act);
1162 filter = _XkbNextFreeFilter(xkbi);
1163 sendEvent= _XkbFilterXF86Private(xkbi,filter,key,&act);
1171 sendEvent = _XkbApplyFilters(xkbi,key,NULL);
1174 if (xkbi->groupChange!=0)
1175 xkbi->state.base_group+= xkbi->groupChange;
1176 if (xkbi->setMods) {
1177 for (i=0,bit=1; xkbi->setMods; i++,bit<<=1 ) {
1178 if (xkbi->setMods&bit) {
1180 xkbi->state.base_mods|= bit;
1181 xkbi->setMods&= ~bit;
1185 if (xkbi->clearMods) {
1186 for (i=0,bit=1; xkbi->clearMods; i++,bit<<=1 ) {
1187 if (xkbi->clearMods&bit) {
1190 xkbi->state.base_mods&= ~bit;
1193 xkbi->clearMods&= ~bit;
1214 XkbComputeDerivedState(xkbi);
1215 changed = XkbStateChangedFlags(&xkbi->prev_state,&xkbi->state);
1225 xkbi->flags&= ~_XkbStateNotifyInProgress;
1239 XkbSrvInfoPtr xkbi;
1245 xkbi = pXDev->key->xkbInfo;
1247 xkbi->state.latched_mods&= ~clear;
1251 _XkbApplyFilters(xkbi,SYNTHETIC_KEYCODE,&act);
1255 filter = _XkbNextFreeFilter(xkbi);
1256 _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,&act);
1257 _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,(XkbAction *)NULL);
1266 XkbSrvInfoPtr xkbi;
1271 xkbi = pXDev->key->xkbInfo;
1275 filter = _XkbNextFreeFilter(xkbi);
1276 _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,&act);
1277 _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,(XkbAction *)NULL);
1287 XkbSrvInfoPtr xkbi,
1295 os= xkbi->state;
1305 xkbi->state.locked_mods= 0;
1309 xkbi->state.locked_group= 0;
1315 XkbComputeDerivedState(xkbi);
1320 sn.changed= XkbStateChangedFlags(&os,&xkbi->state);