处理 clientmessage 事件和全屏窗口

This commit is contained in:
2025-08-26 00:42:19 +08:00
parent b28c9cd58b
commit f225dc7011
8 changed files with 104 additions and 7 deletions

View File

@@ -125,8 +125,17 @@ typedef struct property_notify_event_t {
property_state_t state;
} property_notify_event_t;
typedef union client_message_data_t {
uint8_t data8[20];
uint16_t data16[10];
uint32_t data32[5];
} client_message_data_t;
typedef struct client_message_event_t {
event_type_t type;
xcb_window_t window;
uint32_t message_type;
client_message_data_t data;
uint8_t format;
} client_message_event_t;
typedef union generic_event_t {

View File

@@ -62,6 +62,7 @@ void place_window_below_sibling(xcb_window_t window, xcb_window_t sibling);
* @brief 关闭窗口并清理资源
*/
void kill_window(xcb_window_t window);
void set_window_fullscreen_state(xcb_window_t window, bool fullscreen);
typedef struct bar_cairo_params_t {
xcb_connection_t *conn;
@@ -119,6 +120,8 @@ typedef enum atom_t {
atom_wm_delete,
atom_wm_take_focus,
atom_net_wm_name,
atom_net_wm_state,
atom_net_wm_fullscreen,
atom__xrootpmap_id,
atom_esetroot_pmap_id,
} atom_t;