此 C 函数可用于禁用或启用许多窗口管理器中的窗口装饰。如果 'mode' 是 'd' 窗口将隐藏装饰,否则如果 'mode' 是 'D' 窗口将显示它们。
void window_tune_decorations(Display *disp, Window win, char mode) {
long hints[5] = { 2, 0, 0, 0, 0};
Atom motif_hints = XInternAtom(disp, "_MOTIF_WM_HINTS", False);
switch (mode) {
case 'D':
hints[2] = 1;
/* fall through */
case 'd':
XChangeProperty(disp, win, motif_hints, motif_hints, 32, PropModeReplace, (unsigned char *)hints, 5);
break;
default:
fputs("Invalid mode.\n", stderr);
}
}
我想实现一个“切换模式”。所以我的问题是,有没有办法检测窗户是否有装饰品?我尝试将 XGetWindowProperty 与 _MOTIF_WM_HINTS 一起使用,但我不确定如何解释输出。