@@ -226,9 +226,6 @@ typedef struct {
226226 uint32_t ui ;
227227 uint32_t ui2 ;
228228} Arg ;
229- struct mango_print_status_manager {
230- struct wl_signal print_status ;
231- };
232229
233230typedef struct {
234231 uint32_t mod ;
@@ -878,6 +875,8 @@ struct Pertag {
878875 * ltidxs [LENGTH (tags ) + 1 ]; /* matrix of tags and layouts indexes */
879876};
880877
878+ static struct wl_signal mango_print_status ;
879+
881880static struct wl_listener print_status_listener = {.notify =
882881 handle_print_status };
883882static struct wl_listener cursor_axis = {.notify = axisnotify };
@@ -4166,8 +4165,7 @@ void pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
41664165
41674166// 修改printstatus函数,接受掩码参数
41684167void printstatus (uint32_t event_mask ) {
4169- wl_signal_emit (& print_status_manager -> print_status ,
4170- (void * )(uintptr_t )event_mask );
4168+ wl_signal_emit (& mango_print_status , (void * )(uintptr_t )event_mask );
41714169}
41724170
41734171void powermgrsetmode (struct wl_listener * listener , void * data ) {
@@ -4891,22 +4889,8 @@ void create_output(struct wlr_backend *backend, void *data) {
48914889#endif
48924890}
48934891
4894- // 创建函数
4895- struct mango_print_status_manager * mango_print_status_manager_create () {
4896- struct mango_print_status_manager * manager = calloc (1 , sizeof (* manager ));
4897- if (!manager )
4898- return NULL ;
4899-
4900- // 初始化 print_status 信号,不是 event_signal
4901- wl_signal_init (& manager -> print_status );
4902-
4903- return manager ;
4904- }
4905-
49064892// 修改信号处理函数,接收掩码参数
49074893void handle_print_status (struct wl_listener * listener , void * data ) {
4908- struct mango_print_status_manager * manager =
4909- wl_container_of (listener , manager , print_status );
49104894
49114895 uint32_t event_mask = (uintptr_t )data ;
49124896 // 如果传入的是NULL(旧代码)或0,使用默认的所有事件
@@ -5025,8 +5009,8 @@ void setup(void) {
50255009 wlr_ext_data_control_manager_v1_create (dpy , 1 );
50265010
50275011 // 在 setup 函数中
5028- print_status_manager = mango_print_status_manager_create ( );
5029- wl_signal_add (& print_status_manager -> print_status , & print_status_listener );
5012+ wl_signal_init ( & mango_print_status );
5013+ wl_signal_add (& mango_print_status , & print_status_listener );
50305014
50315015 /* Initializes the interface used to implement urgency hints */
50325016 activation = wlr_xdg_activation_v1_create (dpy );
0 commit comments