启动时扫描已有窗口并管理

This commit is contained in:
2025-08-24 10:01:46 +08:00
parent 7eea0ee2d3
commit bac73368e3
5 changed files with 87 additions and 25 deletions

View File

@@ -84,8 +84,10 @@ rect_size_t *get_screen_size(void);
void set_wallpaper(uint32_t *wallpaper_data);
typedef struct window_list_t {
uint32_t count;
xcb_window_t *list;
xcb_window_t *normal_list;
xcb_window_t *transient_list;
uint32_t normal_count;
uint32_t transient_count;
} window_list_t;
window_list_t *scan_window_list(void);
void free_window_list(window_list_t *window_list);
@@ -103,5 +105,12 @@ typedef enum atom_t {
atom_wm_take_focus,
} atom_t;
bool send_event(xcb_window_t window, atom_t atom);
typedef enum wm_state_t {
wm_state_withdrawn = 0,
wm_state_normal = 1,
wm_state_iconic = 3
} wm_state_t;
int32_t get_window_state(xcb_window_t window);
void set_window_state(xcb_window_t window, wm_state_t state);
bool get_pointer_position(int32_t *x, int32_t *y);