feat: bar 点击回调添加按键和修饰键参数

on_click 新增 modifiers/button,使 bar item 可按按键与修饰键区分动作;
因参数增多,回调与 bar_click 改用结构参数封装。同时将 button_t 与
modifier 类型提升至公开头 include/zdwm/types.h 以供使用
This commit is contained in:
2026-06-23 07:42:52 +08:00
parent 195aeb5166
commit 8f671bd755
8 changed files with 77 additions and 62 deletions

View File

@@ -17,9 +17,12 @@ typedef zdwm_output_info_t output_info_t;
typedef zdwm_rule_match_t rule_match_t;
typedef zdwm_rule_action_t rule_action_t;
typedef enum zdwm_button_t button_t;
typedef enum zdwm_modifier_bit_t modifier_bit_t;
typedef zdwm_modifier_mask_t modifier_mask_t;
/* clang-format on */
typedef uint32_t modifier_mask_t;
typedef uint32_t keysym_t;
#define ZDWM_OUTPUT_ID_INVALID ((output_id_t)UINT32_MAX)
@@ -39,29 +42,11 @@ typedef enum cross_output_policy_t {
ZDWM_CROSS_OUTPUT_MOVE_TO_TARGET_WORKSPACE,
} cross_output_policy_t;
typedef enum modifier_bit_t {
ZDWM_MOD_NONE = 0u,
ZDWM_MOD_SHIFT = 1u << 0,
ZDWM_MOD_CONTROL = 1u << 1,
ZDWM_MOD_1 = 1u << 2,
ZDWM_MOD_2 = 1u << 3,
ZDWM_MOD_3 = 1u << 4,
ZDWM_MOD_4 = 1u << 5,
ZDWM_MOD_5 = 1u << 6,
} modifier_bit_t;
typedef struct key_bind_t {
modifier_mask_t modifiers;
keysym_t keysym;
} key_bind_t;
typedef enum button_t {
ZDWM_BUTTON_NONE,
ZDWM_BUTTON_LEFT,
ZDWM_BUTTON_RIGHT,
ZDWM_BUTTON_MIDDLE,
} button_t;
typedef struct grab_button_t {
modifier_mask_t modifiers;
button_t button;