处理窗口销毁事件

This commit is contained in:
2025-08-24 11:35:52 +08:00
parent bac73368e3
commit 0039cd2c43
7 changed files with 80 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
#pragma once
#include <stdbool.h>
#include <stdint.h>
#include <xcb/xproto.h>
@@ -78,10 +79,12 @@ typedef struct map_request_event_t {
typedef struct unmap_notify_event_t {
event_type_t type;
xcb_window_t window;
bool send_event;
} unmap_notify_event_t;
typedef struct destroy_notify_event_t {
event_type_t type;
xcb_window_t window;
} destroy_notify_event_t;
typedef struct expose_event_t {

View File

@@ -46,7 +46,7 @@ void map_window(xcb_window_t window);
* @returns 返回窗口名字符串指针,使用完后记得使用 free 释放内存
*/
char *get_window_name(xcb_window_t window);
void init_window_event_mask(xcb_window_t window);
void set_window_event_mask(xcb_window_t window, bool clear);
void change_window_border_color(xcb_window_t window, uint32_t argb);
void focus_window(xcb_window_t window);
@@ -112,5 +112,6 @@ typedef enum wm_state_t {
} wm_state_t;
int32_t get_window_state(xcb_window_t window);
void set_window_state(xcb_window_t window, wm_state_t state);
void set_window_list(xcb_window_t *list, uint32_t length);
bool get_pointer_position(int32_t *x, int32_t *y);