完善 ewmh 扩展初始化

This commit is contained in:
2025-08-04 14:28:38 +08:00
parent 801124a8a2
commit 645d6594b8
6 changed files with 84 additions and 4 deletions

26
src/xcb/window.c Normal file
View File

@@ -0,0 +1,26 @@
#include "window.h"
#include <stdlib.h>
#include <string.h>
#include <xcb/xcb_icccm.h>
#include "xcb-private.h"
void set_window_class_instance(xcb_window_t window, const char *class,
const char *instance) {
size_t class_length = strlen(class) + 1;
size_t instance_length = strlen(instance) + 1;
size_t length = class_length + instance_length;
char *str = malloc(length * sizeof(char));
for (size_t i = 0; i < length; i++) {
if (i < class_length) {
str[i] = class[i];
} else {
str[i] = instance[i - class_length];
}
}
xcb_icccm_set_wm_class(conn, window, length, str);
free(str);
}