设置 root 窗口鼠标样式

This commit is contained in:
2025-11-21 01:00:51 +08:00
parent 2aed03566c
commit bf595e6c8a
3 changed files with 10 additions and 0 deletions

View File

@@ -26,6 +26,7 @@
#include "types.h" #include "types.h"
#include "utils.h" #include "utils.h"
#include "xcursor.h" #include "xcursor.h"
#include "xwindow.h"
static void wm_setup_signal(void); static void wm_setup_signal(void);
static void wm_check_other_wm(void); static void wm_check_other_wm(void);
@@ -284,6 +285,7 @@ static void wm_setup(void) {
monitor_draw_bar(m); monitor_draw_bar(m);
} }
xwindow_change_cursor(wm.screen->root, cursor_normal);
xcb_flush(wm.xcb_conn); xcb_flush(wm.xcb_conn);
} }

View File

@@ -100,3 +100,8 @@ visual_t *xwindow_get_xcb_visual(bool prefer_alpha) {
return visual; return visual;
} }
void xwindow_change_cursor(xcb_window_t window, cursor_t cursor) {
xcb_params_cw_t params = {.cursor = xcursor_get_xcb_cursor(cursor)};
xcb_aux_change_window_attributes(wm.xcb_conn, window, XCB_CW_CURSOR, &params);
}

View File

@@ -3,9 +3,12 @@
#include <stdint.h> #include <stdint.h>
#include <xcb/xproto.h> #include <xcb/xproto.h>
#include "xcursor.h"
typedef struct visual_t { typedef struct visual_t {
uint8_t depth; uint8_t depth;
xcb_visualtype_t *visual; xcb_visualtype_t *visual;
} visual_t; } visual_t;
visual_t *xwindow_get_xcb_visual(bool prefer_alpha); visual_t *xwindow_get_xcb_visual(bool prefer_alpha);
void xwindow_change_cursor(xcb_window_t window, cursor_t cursor);