diff options
Diffstat (limited to '')
-rw-r--r-- | common.h | 2 | ||||
-rw-r--r-- | libaxl/consts.h | 27 | ||||
-rw-r--r-- | libaxl/requests.h | 28 | ||||
-rw-r--r-- | libaxl_send_request.c | 4 |
4 files changed, 44 insertions, 17 deletions
@@ -77,7 +77,7 @@ struct libaxl_connection { int fd; uint16_t last_seqnum; LIBAXL_CONNECTION_RWLOCK; - LIBAXL_CONTEXT *pending_out; + LIBAXL_CONTEXT *pending_out; /* TODO can _Atomic be used instead of mutex */ size_t in_progress; size_t in_buf_size; char *in_buf; diff --git a/libaxl/consts.h b/libaxl/consts.h index 686de2b..a378c73 100644 --- a/libaxl/consts.h +++ b/libaxl/consts.h @@ -272,3 +272,30 @@ #define LIBAXL_COPY_FROM_PARENT 0 #define LIBAXL_POINTER_ROOT 1 #define LIBAXL_PARENT 2 + +/* window event mask */ +#define LIBAXL_EVENT_MASK_KEY_PRESS UINT32_C(0x00000001) +#define LIBAXL_EVENT_MASK_KEY_RELEASE UINT32_C(0x00000002) +#define LIBAXL_EVENT_MASK_BUTTON_PRESS UINT32_C(0x00000004) +#define LIBAXL_EVENT_MASK_BUTTON_RELEASE UINT32_C(0x00000008) +#define LIBAXL_EVENT_MASK_ENTER_WINDOW UINT32_C(0x00000010) +#define LIBAXL_EVENT_MASK_LEAVE_WINDOW UINT32_C(0x00000020) +#define LIBAXL_EVENT_MASK_POINTER_MOTION UINT32_C(0x00000040) +#define LIBAXL_EVENT_MASK_POINTER_MOTION_HINT UINT32_C(0x00000080) +#define LIBAXL_EVENT_MASK_BUTTON_1_MOTION UINT32_C(0x00000100) +#define LIBAXL_EVENT_MASK_BUTTON_2_MOTION UINT32_C(0x00000200) +#define LIBAXL_EVENT_MASK_BUTTON_3_MOTION UINT32_C(0x00000400) +#define LIBAXL_EVENT_MASK_BUTTON_4_MOTION UINT32_C(0x00000800) +#define LIBAXL_EVENT_MASK_BUTTON_5_MOTION UINT32_C(0x00001000) +#define LIBAXL_EVENT_MASK_BUTTON_MOTION UINT32_C(0x00002000) +#define LIBAXL_EVENT_MASK_KEYMAP_STATE UINT32_C(0x00004000) +#define LIBAXL_EVENT_MASK_EXPOSURE UINT32_C(0x00008000) +#define LIBAXL_EVENT_MASK_VISIBILITY_CHANGE UINT32_C(0x00010000) +#define LIBAXL_EVENT_MASK_STRUCTURE_NOTIFY UINT32_C(0x00020000) +#define LIBAXL_EVENT_MASK_RESIZE_REDIRECT UINT32_C(0x00040000) +#define LIBAXL_EVENT_MASK_SUBSTRUCTURE_NOTIFY UINT32_C(0x00080000) +#define LIBAXL_EVENT_MASK_SUBSTRUCTURE_REDIRECT UINT32_C(0x00100000) +#define LIBAXL_EVENT_MASK_FOCUS_CHANGE UINT32_C(0x00200000) +#define LIBAXL_EVENT_MASK_PROPERTY_CHANGE UINT32_C(0x00400000) +#define LIBAXL_EVENT_MASK_COLOR_MAP_CHANGE UINT32_C(0x00800000) +#define LIBAXL_EVENT_MASK_OWNER_GRAB_BUTTON UINT32_C(0x01000000) diff --git a/libaxl/requests.h b/libaxl/requests.h index bbb4442..4517b46 100644 --- a/libaxl/requests.h +++ b/libaxl/requests.h @@ -47,7 +47,7 @@ struct libaxl_request_create_window { libaxl_bool_t override_redirect; libaxl_bool_t save_under; uint16_t __omitted2; - uint32_t event_mask; /* TODO SETofEVENT */ + uint32_t event_mask; /* See "window event mask" in libaxl/consts.h */ uint32_t do_not_propagate_mask; /* TODO SETofDEVICEEVENT */ libaxl_colormap_t colormap; /* Can be LIBAXL_COPY_FROM_PARENT */ libaxl_cursor_t cursor; /* Can be LIBAXL_NONE */ @@ -88,7 +88,7 @@ struct libaxl_request_change_window_attributes { libaxl_bool_t override_redirect; libaxl_bool_t save_under; uint16_t __omitted2; - uint32_t event_mask; /* TODO SETofEVENT */ + uint32_t event_mask; /* See "window event mask" in libaxl/consts.h */ uint32_t do_not_propagate_mask; /* TODO SETofDEVICEEVENT */ libaxl_colormap_t colormap; /* Can be LIBAXL_COPY_FROM_PARENT */ libaxl_cursor_t cursor; /* Can be LIBAXL_NONE */ @@ -191,7 +191,7 @@ struct libaxl_request_configure_window { uint16_t border_width; uint16_t __omitted1; libaxl_window_t sibling; - uint8_t stack_mode; /* See "stack mode" in libaxl-consts.h */ + uint8_t stack_mode; /* See "stack mode" in libaxl/consts.h */ uint8_t __omitted2[3]; }; @@ -240,7 +240,7 @@ struct libaxl_request_get_atom_name { struct libaxl_request_change_property { #define LIBAXL_REQUEST_CHANGE_PROPERTY 18 uint8_t opcode; - uint8_t mode; /* See libaxl-consts.h */ + uint8_t mode; /* See libaxl/consts.h */ uint16_t _request_length; libaxl_window_t window; libaxl_atom_t property; @@ -320,7 +320,7 @@ struct libaxl_request_send_event { libaxl_bool_t propagate; uint16_t _request_length; /* = 11 */ libaxl_window_t destination; /* Can be LIBAXL_{POINTER_WINDOW or INPUT_FOCUS} */ - uint32_t event_mask; /* TODO SETofEVENT */ + uint32_t event_mask; /* See "window event mask" in libaxl/consts.h */ union libaxl_event event; }; @@ -429,7 +429,7 @@ struct libaxl_request_ungrab_key { struct libaxl_request_allow_events { #define LIBAXL_REQUEST_ALLOW_EVENTS 35 uint8_t opcode; - uint8_t mode; /* See libaxl-consts.h */ + uint8_t mode; /* See libaxl/consts.h */ uint16_t _request_length; /* = 2 */ libaxl_timestamp_t time; /* Can be LIBAXL_CURRENT_TIME */ }; @@ -639,15 +639,15 @@ struct libaxl_request_create_gc { #define LIBAXL_REQUEST_CREATE_GC_DASH_OFFSET 0x00100000UL #define LIBAXL_REQUEST_CREATE_GC_DASHES 0x00200000UL #define LIBAXL_REQUEST_CREATE_GC_ARC_MODE 0x00400000UL - uint8_t function; /* See "gcontext function" in libaxl-consts.h */ + uint8_t function; /* See "gcontext function" in libaxl/consts.h */ uint8_t __omitted1[3]; uint32_t plane_mask; uint32_t foreground; uint32_t background; uint16_t line_width; uint8_t line_style; /* LIBAXL_{SOLID, ON_OFF_DASH, or DOUBLE_DASH} */ - uint8_t cap_style; /* See "cap style" in libaxl-consts.h (Beware of namespacing) */ - uint8_t join_style; /* See "join style" in libaxl-consts.h (Beware of namespacing) */ + uint8_t cap_style; /* See "cap style" in libaxl/consts.h (Beware of namespacing) */ + uint8_t join_style; /* See "join style" in libaxl/consts.h (Beware of namespacing) */ uint8_t fill_style; /* LIBAXL_{SOLID, TILED, STIPPLED, or OPAQUE_STIPPLED} */ uint8_t fill_rule; /* LIBAXL_{EVEN_ODD or WINDING} */ uint8_t __omitted2; @@ -697,15 +697,15 @@ struct libaxl_request_change_gc { #define LIBAXL_REQUEST_CHANGE_GC_DASH_OFFSET 0x00100000UL #define LIBAXL_REQUEST_CHANGE_GC_DASHES 0x00200000UL #define LIBAXL_REQUEST_CHANGE_GC_ARC_MODE 0x00400000UL - uint8_t function; /* See "gcontext function" in libaxl-consts.h */ + uint8_t function; /* See "gcontext function" in libaxl/consts.h */ uint8_t __omitted1[3]; uint32_t plane_mask; uint32_t foreground; uint32_t background; uint16_t line_width; uint8_t line_style; /* LIBAXL_{SOLID, ON_OFF_DASH, or DOUBLE_DASH} */ - uint8_t cap_style; /* See "cap style" in libaxl-consts.h (Beware of namespacing) */ - uint8_t join_style; /* See "join style" in libaxl-consts.h (Beware of namespacing) */ + uint8_t cap_style; /* See "cap style" in libaxl/consts.h (Beware of namespacing) */ + uint8_t join_style; /* See "join style" in libaxl/consts.h (Beware of namespacing) */ uint8_t fill_style; /* LIBAXL_{SOLID, TILED, STIPPLED, or OPAQUE_STIPPLED} */ uint8_t fill_rule; /* LIBAXL_{EVEN_ODD or WINDING} */ uint8_t __omitted2; @@ -1125,7 +1125,7 @@ struct libaxl_request_store_colors { struct libaxl_request_store_named_color { #define LIBAXL_REQUEST_STORE_NAMED_COLOR 90 uint8_t opcode; - uint8_t flags; /* See libaxl-consts.h */ + uint8_t flags; /* See libaxl/consts.h */ uint16_t _request_length; libaxl_colormap_t cmap; uint32_t pixel; @@ -1343,7 +1343,7 @@ struct libaxl_request_change_hosts { uint8_t opcode; uint8_t mode; /* LIBAXL_{INSERT or DELETE} */ uint16_t _request_length; - uint8_t family; /* See libaxl-consts.h */ + uint8_t family; /* See libaxl/consts.h */ uint8_t __pad; uint16_t length_of_address; const uint8_t *address; diff --git a/libaxl_send_request.c b/libaxl_send_request.c index 7172cdf..4e795da 100644 --- a/libaxl_send_request.c +++ b/libaxl_send_request.c @@ -28,7 +28,7 @@ static const char *const req_formats[] = { * the length field and will be filled in by the function */ [LIBAXL_REQUEST_CREATE_WINDOW] = "11,44ss222244|4444111.44!!,4444", - [LIBAXL_REQUEST_CHANGE_WINDOW_ATTRIBUTES] = "1_44|4444111.44111.44!!,4444", + [LIBAXL_REQUEST_CHANGE_WINDOW_ATTRIBUTES] = "1_44|4444111.44!!,4444", [LIBAXL_REQUEST_GET_WINDOW_ATTRIBUTES] = "1_4", [LIBAXL_REQUEST_DESTROY_WINDOW] = "1_4", [LIBAXL_REQUEST_DESTROY_SUBWINDOWS] = "1_4", @@ -436,7 +436,7 @@ again: case '4': case 'S': if (mask & 1) { - u32 = *(const uint16_t *)&req[i]; + u32 = *(const uint32_t *)&req[i]; if (*fmt == 'S') TWOS_COMPLEMENT32(&u32); *(uint32_t *)&buf[o] = htonl(u32); |