int xkb_set_off() { unsigned int mask; if( !xkb_init()) return 0; mask = xkb_numlock_mask(); if( mask == 0 ) return 0; XkbLockModifiers ( qt_xdisplay(), XkbUseCoreKbd, mask, 0); return 1; }
int xkb_set_on() { unsigned int mask; if( !xkb_init()) return 0; mask = xkb_numlock_mask(); if( mask == 0 ) return 0; XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask); return 1; }
int xkb_state() { unsigned int mask; unsigned int numlockState; XkbStateRec xkbState; if( !xkb_init()) return 0; mask = xkb_numlock_mask(); if( mask == 0 ) return 0; XkbGetState( dpy, XkbUseCoreKbd, &xkbState); numlockState = xkbState.locked_mods & mask; return numlockState; }
static void control_numlock(Display *dpy, bool flag) { unsigned int mask; if( !xkb_init(dpy) ) return; mask = xkb_numlock_mask(dpy); if( mask == 0 ) return; if( flag == true ) XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask); else XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); }
int xkb_toggle() { unsigned int mask; unsigned int numlockState; XkbStateRec xkbState; if( !xkb_init()) return 0; mask = xkb_numlock_mask(); if( mask == 0 ) return 0; XkbGetState( dpy, XkbUseCoreKbd, &xkbState); numlockState = xkbState.locked_mods & mask; if (numlockState) XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); else XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask); return 1; }