XkbSAPtrDfltValue(3)

πŸ’– NAME πŸ’–

Okay bestie, this is XkbSAPtrDfltValue(3) from the XKB FUNCTIONS corner of the universe β€” and it returns the valueXXX field of act converted to a signed int ✨


🌸 SYNOPSIS 🌸

int XkbSAPtrDfltValue (XkbAction act);

πŸ¦‹ ARGUMENTS πŸ¦‹

  • act β€” the action from which to extract group 🫢

πŸŽ€ DESCRIPTION πŸŽ€

So, actions associated with the XkbPtrDfltAction structure change the mk_dflt_btn attribute of the MouseKeys control. That's the whole vibe πŸ’…

If the MouseKeys control is not enabled, KeyPress and KeyRelease events are treated as though the action is XkbSA_NoAction. Otherwise, this action changes the mk_dflt_btn attribute of the MouseKeys control. No cap.

The type field of the XkbPtrDfltAction structure should always be XkbSA_SetPtrDflt. Periodt.

The flags field is composed of the bitwise inclusive OR of the values shown in Table 1 β€” and currently there is only one value defined, so it's giving very "small but iconic" energy πŸŽ€

πŸ“Š Table 1 Pointer Default Flags πŸ“Š

  • XkbSA_DfltBtnAbsolute β€” If set, the value field represents an absolute pointer button. Otherwise, the value field represents the amount to be added to the current default button.

The affect field specifies what changes as a result of this action. The only valid value for the affect field is XkbSA_AffectDfltBtn. That's the only one invited to the party 🫢

The valueXXX field is a signed character that represents the new button value for the mk_dflt_btn attribute of the MouseKeys control. If XkbSA_DfltBtnAbsolute is set in flags, valueXXX specifies the button to be used; otherwise, valueXXX specifies the amount to be added to the current default button. In either case, illegal button choices are wrapped back around into range. Xkb provides macros, to convert between the integer and signed character values in XkbPtrDfltAction structures. Slay.

And finally, XkbSAPtrDfltValue returns the valueXXX field of act converted to a signed int πŸ’–


πŸ‘‘ STRUCTURES πŸ‘‘

typedef struct _XkbPtrDfltAction {
    unsigned char    type;      /* XkbSA_SetPtrDflt */
    unsigned char    flags;     /* controls the pointer button number */
    unsigned char    affect;    /* XkbSA_AffectDfltBtn */
    char             valueXXX;  /* new default button member */
} XkbPtrDfltAction;

That's the whole page, bestie β€” signed, sealed, and delivered with X Version 11, libX11 1.8.14, and XkbSAPtrDfltValue(3) energy πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from