1XkbSetIgnoreLockMods(3)          XKB FUNCTIONS         XkbSetIgnoreLockMods(3)
2
3
4

NAME

6       XkbSetIgnoreLockMods  -  Sets the modifiers that, if locked, are not to
7       be reported in matching events to passive grabs
8

SYNOPSIS

10       Bool XkbSetIgnoreLockMods (Display *display, unsigned int  device_spec,
11              unsigned int affect_real, unsigned int real_values, unsigned int
12              affect_virtual, unsigned int virtual_values);
13

ARGUMENTS

15       - display
16              connection to the X server
17
18       - device_spec
19              device ID, or XkbUseCoreKbd
20
21       - affect_real
22              mask of real modifiers affected by this call
23
24       - real_values
25              values for affected real modifiers (1=>set, 0=>unset)
26
27       - affect_virtual
28              mask of virtual modifiers affected by this call
29
30       - virtual_values
31              values for affected virtual modifiers (1=>set, 0=>unset)
32

DESCRIPTION

34       The core protocol does not provide a way to exclude specific  modifiers
35       from  grab  calculations,  with the result that locking modifiers some‐
36       times have unanticipated side effects.
37
38       The IgnoreLockMods control specifies modifiers that should be  excluded
39       from  grab  calculations.  These modifiers are also not reported in any
40       core events except KeyPress and KeyRelease events that do not  activate
41       a passive grab and that do not occur while a grab is active.
42
43       Manipulate  the IgnoreLockMods control via the ignore_lock field in the
44       XkbControlsRec structure, then use XkbSetControls and XkbGetControls to
45       query and change this control. Alternatively, use XkbSetIgnoreLockMods.
46
47       XkbSetIgnoreLockMods  sends  a  request  to  the  server  to change the
48       server's IgnoreLockMods control.  affect_real and real_values are masks
49       of  real  modifier bits indicating which real modifiers are to be added
50       and  removed  from  the  server's  IgnoreLockMods  control.   Modifiers
51       selected  by both affect_real and real_values are added to the server's
52       IgnoreLockMods control;  those  selected  by  affect_real  but  not  by
53       real_values are removed from the server's IgnoreLockMods control. Valid
54       values for affect_real and real_values consist of  any  combination  of
55       the   eight  core  modifier  bits:  ShiftMask,  LockMask,  ControlMask,
56       Mod1Mask - Mod5Mask.  affect_virtual and virtual_values  are  masks  of
57       virtual  modifier  bits  indicating  which  virtual modifiers are to be
58       added and removed from the server's IgnoreLockMods  control.  Modifiers
59       selected  by  both  affect_virtual  and virtual_values are added to the
60       server's IgnoreLockMods control; those selected by  affect_virtual  but
61       not by virtual_values are removed from the server's IgnoreLockMods con‐
62       trol. See below for a discussion of virtual modifier masks  to  use  in
63       affect_virtual  and  virtual_values. XkbSetIgnoreLockMods does not wait
64       for a reply from the server. It returns True if the request  was  sent,
65       and False otherwise.
66
67       Virtual  modifiers  are  named  by converting their string name to an X
68       Atom and storing the Atom in the names.vmods  array  in  an  XkbDescRec
69       structure. The position of a name Atom in the names.vmods array defines
70       the bit position used to represent the virtual modifier  and  also  the
71       index  used  when accessing virtual modifier information in arrays: the
72       name in the i-th (0 relative) entry of names.vmods is the i-th  virtual
73       modifier, represented by the mask (1<<i). Throughout Xkb, various func‐
74       tions have a parameter that is a  mask  representing  virtual  modifier
75       choices. In each case, the i-th bit (0 relative) of the mask represents
76       the i-th virtual modifier.
77
78       To set the name of a virtual modifier, use XkbSetNames,  using  XkbVir‐
79       tualModNamesMask in which and the name in the xkb argument; to retrieve
80       indicator names, use XkbGetNames.
81

STRUCTURES

83       The complete description of an Xkb keyboard is given by an  XkbDescRec.
84       The component structures in the XkbDescRec represent the major Xkb com‐
85       ponents.
86
87       typedef struct {
88           struct _XDisplay * display;      /∗ connection to X server */
89           unsigned short     flags;        /∗ private to Xkb, do not modify */
90           unsigned short     device_spec;  /∗ device of interest */
91           KeyCode            min_key_code; /∗ minimum keycode for device */
92           KeyCode            max_key_code; /∗ maximum keycode for device */
93           XkbControlsPtr     ctrls;        /∗ controls */
94           XkbServerMapPtr    server;       /∗ server keymap */
95           XkbClientMapPtr    map;          /∗ client keymap */
96           XkbIndicatorPtr    indicators;   /∗ indicator map */
97           XkbNamesPtr        names;        /∗ names for all components */
98           XkbCompatMapPtr    compat;       /∗ compatibility map */
99           XkbGeometryPtr     geom;         /∗ physical geometry of keyboard */
100       } XkbDescRec, *XkbDescPtr;
101
102       The display field points to an X display structure. The flags field  is
103       private  to  the  library:  modifying  flags  may  yield  unpredictable
104       results. The device_spec field specifies the device identifier  of  the
105       keyboard  input device, or XkbUseCoreKeyboard, which specifies the core
106       keyboard device. The min_key_code and max_key_code fields  specify  the
107       least and greatest keycode that can be returned by the keyboard.
108
109       Each  structure  component has a corresponding mask bit that is used in
110       function calls to indicate that the structure should be manipulated  in
111       some manner, such as allocating it or freeing it. These masks and their
112       relationships to the fields in the XkbDescRec are shown in Table 1.
113
114
115               Table 1 Mask Bits for XkbDescRec
116       ──────────────────────────────────────────────────
117       Mask Bit               XkbDescRec Field   Value
118       ──────────────────────────────────────────────────
119       XkbControlsMask        ctrls              (1L<<0)
120       XkbServerMapMask       server             (1L<<1)
121       XkbIClientMapMask      map                (1L<<2)
122       XkbIndicatorMapMask    indicators         (1L<<3)
123       XkbNamesMask           names              (1L<<4)
124       XkbCompatMapMask       compat             (1L<<5)
125       XkbGeometryMask        geom               (1L<<6)
126       XkbAllComponentsMask   All Fields         (0x7f)
127

SEE ALSO

129       XkbGetControls(3), XkbGetNames(3), XkbSetControls(3), XkbSetNames(3)
130
131
132
133X Version 11                     libX11 1.6.12         XkbSetIgnoreLockMods(3)
Impressum