Copy over missing action structs from kbproto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
diff --git a/include/X11/extensions/XKBcommon.h b/include/X11/extensions/XKBcommon.h
index 6fc34b5..64f8e8b 100644
--- a/include/X11/extensions/XKBcommon.h
+++ b/include/X11/extensions/XKBcommon.h
@@ -133,21 +133,54 @@ struct xkb_switch_screen_action {
uint8_t screen;
};
+struct xkb_redirect_key_action {
+ unsigned char type;
+ unsigned char new_key;
+ unsigned char mods_mask;
+ unsigned char mods;
+ unsigned char vmods_mask0;
+ unsigned char vmods_mask1;
+ unsigned char vmods0;
+ unsigned char vmods1;
+};
+
+struct xkb_pointer_action {
+ unsigned char type;
+ unsigned char flags;
+ unsigned char high_XXX;
+ unsigned char low_XXX;
+ unsigned char high_YYY;
+ unsigned char low_YYY;
+};
+
+struct xkb_message_action {
+ unsigned char type;
+ unsigned char flags;
+ unsigned char message[6];
+};
+
+struct xkb_pointer_button_action {
+ unsigned char type;
+ unsigned char flags;
+ unsigned char count;
+ unsigned char button;
+};
+
union xkb_action {
- struct xkb_any_action any;
- struct xkb_mod_action mods;
- struct xkb_group_action group;
- struct xkb_iso_action iso;
- struct xkb_controls_action ctrls;
- struct xkb_device_button_action devbtn;
+ struct xkb_any_action any;
+ struct xkb_mod_action mods;
+ struct xkb_group_action group;
+ struct xkb_iso_action iso;
+ struct xkb_controls_action ctrls;
+ struct xkb_device_button_action devbtn;
struct xkb_device_valuator_action devval;
- struct xkb_pointer_default_action dflt;
+ struct xkb_pointer_default_action dflt;
struct xkb_switch_screen_action screen;
- XkbRedirectKeyAction redirect; /* XXX wholly unnecessary? */
- XkbPtrAction ptr; /* XXX delete for DeviceValuator */
- XkbPtrBtnAction btn; /* XXX delete for DeviceBtn */
- XkbMessageAction msg; /* XXX just delete */
- unsigned char type;
+ struct xkb_redirect_key_action redirect; /* XXX wholly unnecessary? */
+ struct xkb_pointer_action ptr; /* XXX delete for DeviceValuator */
+ struct xkb_pointer_button_action btn; /* XXX delete for DeviceBtn */
+ struct xkb_message_action msg; /* XXX just delete */
+ unsigned char type;
};
typedef struct _XkbcMods {
diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c
index 76c9b18..b149dfd 100644
--- a/src/xkbcomp/action.c
+++ b/src/xkbcomp/action.c
@@ -587,10 +587,10 @@ HandleMovePtr(XkbcDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
ExprResult rtrn;
- XkbPtrAction *act;
+ struct xkb_pointer_action *act;
Bool absolute;
- act = (XkbPtrAction *) action;
+ act = (struct xkb_pointer_action *) action;
if ((array_ndx != NULL) && ((field == F_X) || (field == F_Y)))
return ReportActionNotArray(action->type, field);
@@ -652,9 +652,9 @@ HandlePtrBtn(XkbcDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
ExprResult rtrn;
- XkbPtrBtnAction *act;
+ struct xkb_pointer_button_action *act;
- act = (XkbPtrBtnAction *) action;
+ act = (struct xkb_pointer_button_action *) action;
if (field == F_Button)
{
if (array_ndx != NULL)
@@ -958,9 +958,9 @@ HandleActionMessage(XkbcDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
ExprResult rtrn;
- XkbMessageAction *act;
+ struct xkb_message_action *act;
- act = (XkbMessageAction *) action;
+ act = (struct xkb_message_action *) action;
switch (field)
{
case F_Report:
@@ -1036,14 +1036,14 @@ HandleRedirectKey(XkbcDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
ExprResult rtrn;
- XkbRedirectKeyAction *act;
+ struct xkb_redirect_key_action *act;
unsigned t1, t2;
unsigned long tmp;
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
- act = (XkbRedirectKeyAction *) action;
+ act = (struct xkb_redirect_key_action *) action;
switch (field)
{
case F_Keycode: